我有一个名为ClusterSystem的AKKA集群系统.该集群的每个节点都有一个actorA.我想要一种方法将发送给actor的消息广播到集群中运行的所有ActoraA.
如果任何人可以用Java发布一个例子,那将是非常有帮助的.
小智 6
查看分布式发布订阅扩展.它允许您将一个或多个actor订阅到主题,并从群集中的任何actor向此主题发布消息.
订阅:
class Subscriber extends Actor with ActorLogging {
import DistributedPubSubMediator.{ Subscribe, SubscribeAck }
val mediator = DistributedPubSub(context.system).mediator
// subscribe to the topic named "content"
mediator ! Subscribe("content", self)
def receive = {
case s: String ?
log.info("Got {}", s)
case SubscribeAck(Subscribe("content", None, `self`)) ?
log.info("subscribing");
}
}
Run Code Online (Sandbox Code Playgroud)
出版:
class Publisher extends Actor {
import DistributedPubSubMediator.Publish
// activate the extension
val mediator = DistributedPubSub(context.system).mediator
def receive = {
case in: String ?
val out = in.toUpperCase
mediator ! Publish("content", out)
}
}
Run Code Online (Sandbox Code Playgroud)
代码示例和额外的解释在这里.