我想在集群上部署一个用 akka 制作的远程 actor 软件。该系统由多个工作节点和一个主节点组成。问题是我无法提前知道集群节点的 IP 地址(但我知道它们都属于同一子网)。因此,我需要一种在启动后发现每个人的 IP 地址的好方法,以便在每个节点上创建正确的 actor 引用。
我正在寻找在任何自由软件许可下分发的轻量级解决方案(我只需要它进行初始设置)。
最佳答案
前一段时间我创建了一个 prototype旨在解决您的问题(请随意重用代码和/或做出贡献)。
简单介绍一下它是如何工作的。它为每个参与者注册表(=节点)启动一个远程参与者。 RegistryActor 持有在分布式设置中运行的所有其他注册表的链接。当一个新节点被添加到系统中时,它需要知道至少一个其他节点(ActorRegistry)并通知它。 ActorRegistry 让所有其他节点知道新节点(因此,任何 RegistryActor 都有到所有其他 RegistryActor 的链接),并开始一个交换链接到 actor 的过程——在它结束时,所有 actor 注册表都有到所有 actor 的链接(本地或远程)在系统中运行。
更多详情请引用此blogpost .
关于java - Akka 远程 actor 服务器发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6305900/