我想在JVM上创建一个分布式应用程序,它有许多节点,需要一个允许我的库:
我找到了两个解决方案:
还有其他库可以做同样的事情吗?
答案 0 :(得分:28)
JGroups自1998年以来一直存在,因此非常稳定,完全没有约会!它正在积极发展(我是主要开发者)。
它被很多应用程序/系统使用,如果你google它,你会发现很多引用。 就在本周,一家使用它的电信公司打破了使用JGroups和1115节点集群构建的最大集群的记录!
JBoss(Wildfly)集群(Infinispan)也使用JGroups。我建议写一个小原型,看看它是如何表现的。如果您在JGroups邮件列表上提问,那里的人非常有帮助......
我无法对Akka发表评论,因为我没有使用它,但我对Scala的厌恶会让我远离它...
答案 1 :(得分:7)
还有其他库可以做同样的事情吗?
Apache Zookeeper。从来没有使用它,但听说过它。
就个人而言,我使用JGroups已有好几年了。一开始它不稳定 - 我的基于TCP的~10个节点的集群每周被破坏几次(分成子集群),但后来Bela Ban改进了库,它运行良好。
我对“JGroups vs Akka”的5美分:
答案 2 :(得分:5)
我的2美分。我在我的项目中使用了JGroups来达到类似的要求。 env大约有60个节点,虽然有点小,但我们在节点之间有大量活动(大约1MM消息pd)。 JGroups一直很棒,因为它的网络配置非常灵活且非常稳定。当您为不同数据中心/ LAN甚至VLAN上的群集分配JGroup时,您可能会学到一些困难,因为JGroup上没有很多用户活动,这与其他可用的新选项不同。现在。如果你有时间玩它并且有一个类似的QA / Staging env到你的制作,我认为JGroups是一个非常好的选择。
答案 3 :(得分:4)
如果你按照GitHub上的明星数量,那么其他项目(Cassandra,Riak,Hadoop等)也会胜过JGroups ...... :-) 我在JGroups和Aka上做原型,然后选择最适合你的解决方案(性能,功能,简单等)。 欢呼声,