我想在具有多个节点的 JVM 上创建一个分布式应用程序,并且需要一个库来允许我:
- 管理集群/网格成员,即我想在离开/加入时获得通知
- 管理集群成员之间的消息
我找到了两个解决方案:
有没有其他图书馆可以做同样的事情?
我想在具有多个节点的 JVM 上创建一个分布式应用程序,并且需要一个库来允许我:
我找到了两个解决方案:
有没有其他图书馆可以做同样的事情?
JGroups 自 1998 年以来一直存在,因此非常稳定,一点也不过时!它正在积极开发中(我是主要开发人员)。
它被很多应用程序/系统使用,如果你用谷歌搜索它,你会发现很多参考资料。就在本周,一家使用它的电信公司打破了使用 JGroups 构建的最大集群的记录,拥有 1115 个节点的集群!
JBoss (Wildfly) 集群 (Infinispan) 也使用 JGroups。我建议写一个小原型,看看它的表现如何。如果您在 JGroups 邮件列表上提问,那里的人会非常乐于助人...
我无法评论 Akka,因为我没有使用过它,但无论如何我对 Scala 的厌恶会让我远离它......
有没有其他图书馆可以做同样的事情?
阿帕奇动物园管理员。自己从未使用过,但听说过。
就个人而言,我使用 JGroups 已有好几年了。一开始它是不稳定的——我的基于 TCP 的大约 10 个节点的集群每周被破坏几次(分成子集群),但后来 Bela Ban 改进了库,它运行良好。
我对“JGroups vs Akka”的 5 美分:
如果您按 GitHub 上的星数计算,那么其他项目(Cassandra、Riak、Hadoop 等)也会胜过 JGroups... :-) 我会在 JGroups 和 Aka 上制作原型,然后选择可行的解决方案最适合您(性能、功能、简单性等)。干杯,
我的 2 美分。我在我的项目中使用了 JGroups 来实现类似的要求。env 大约有 60 个节点,这有点小,但我们在节点之间有大量活动(大约 1MM 消息 pd)。JGroups 非常棒,因为它的网络配置非常灵活且非常稳定。当您为集群配置 JGroups 时,您可能会很难学到一些东西,这些集群拆分在不同的数据中心/LAN 甚至 VLAN 上,因为 JGroups 上的用户活动并不多,这与其他可用的较新选项不同现在。如果您有时间使用它并拥有与您的产品相当的 QA/Staging 环境,我认为 JGroups 是一个非常好的选择。