我有一个名为 ClusterSystem 的 AKKA 集群系统。该集群的每个节点都有一个参与者 ActorA 。我想要一种方法将发送给参与者的消息广播到集群中运行的所有 ActoraA -s。
如果有人可以在 Java 中发布示例,那将是非常有帮助的。
最佳答案
查看 Distributed Publish Subscribe 扩展。它允许您订阅一个或多个参与者到一个主题,并从集群中的任何参与者向该主题发布消息。
订阅:
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");
}
}
出版:
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)
}
}
代码示例和附加说明 here 。
关于java - 如何在java中向AKKA集群中的所有参与者广播消息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30772983/