如何在Java中向AKKA集群中的所有actor广播消息?

Ris*_*asu 3 java akka-cluster

我有一个名为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)

代码示例和额外的解释在这里.