Akka JGroup的替代方案

Akka JGroup的替代方案,akka,distributed-computing,jgroups,akka-cluster,Akka,Distributed Computing,Jgroups,Akka Cluster,我想在JVM上创建一个具有多个节点的分布式应用程序,并需要一个库,该库允许我: 管理群集/网格成员资格,即我希望在休假/加入时收到通知 管理集群成员之间的消息 我找到了两种解决办法: -它可以工作,但看起来很过时,没有被广泛使用 -它基于Scala,其群集模块看起来不成熟 有没有其他的图书馆也能做到这一点?JGroups自1998年就存在了,因此非常稳定,一点也不过时!它正在积极开发中(我是开发负责人) 很多应用程序/系统都在使用它,如果你在谷歌上搜索它,你会找到很多参考资料。 就在本周

我想在JVM上创建一个具有多个节点的分布式应用程序,并需要一个库,该库允许我:

  • 管理群集/网格成员资格,即我希望在休假/加入时收到通知
  • 管理集群成员之间的消息
我找到了两种解决办法:

  • -它可以工作,但看起来很过时,没有被广泛使用
  • -它基于Scala,其群集模块看起来不成熟

有没有其他的图书馆也能做到这一点?

JGroups自1998年就存在了,因此非常稳定,一点也不过时!它正在积极开发中(我是开发负责人)

很多应用程序/系统都在使用它,如果你在谷歌上搜索它,你会找到很多参考资料。 就在本周,一家使用它的电信公司打破了使用JGroups构建的最大集群的记录,该集群具有1115个节点

JBoss(Wildfly)集群(Infinispan)也使用JGroups。我建议编写一个小型原型,看看它的性能如何。如果你在JGroups邮件列表上提问,那里的人会很有帮助


我不能评论Akka,因为我没有使用过它,但我对Scala的厌恶会让我无论如何远离它…

如果你根据GitHub上的明星数量,那么其他项目(Cassandra、Riak、Hadoop等)也会战胜JGroups…:-) 我会在JGroups和Aka上创建原型,然后选择最适合您的解决方案(性能、功能、简单性等)。
干杯,我的2美分。我在我的项目中使用了JGroups来实现类似的需求。env大约有60个节点,这有点小,但是节点之间有大量的活动(大约1MM个消息)。JGroups非常棒,因为它的网络配置非常灵活而且非常稳定。当您为不同数据中心/局域网甚至VLAN上的群集拆分配置JGroups时,您可能会学到很多东西,因为JGroups上没有太多的用户活动,这与现在可用的其他较新选项不同。如果您有时间使用它,并且您的产品具有类似的QA/Staging env,我认为JGroups是一个非常好的选择

有没有其他图书馆也可以这样做

。我自己从来没用过,但听说过

就我个人而言,我使用JGroups已经好几年了。一开始它是不稳定的——我的基于TCP的约10个节点的集群每周被破坏几次(分成子集群),但后来Bela Ban改进了这个库,它工作得很好

我给“JGroups vs Akka”的5美分:

  • Akka集群配置更简单,不像JGroups的配置那样“深入”
  • Akka集群使用非阻塞I/O进行通信(目前位于Netty之上),JGroups始终使用阻塞TCP套接字(这对于大型集群可能至关重要;但JGroups中也有UDP…但UDP并不总是适用…)
  • Akka Cluster提供了更高级的功能,如集群感知路由器和分布式PubSub,它们与Actor集成得很好(当然,如果您喜欢Akka和Actors的话)
  • Akka集群涵盖了大多数用例,但不是所有用例:看看我们之前的讨论:

我比较了github上的星星数,akka的星星数比jgroups多得多。关于akka的书籍和演讲的数量也更多。这就是我所说的更广泛使用的意思。您有使用它的JBoss项目,Akka cluster的初始版本也使用它。我用JGroups实现了一个简单的切分hashmap,它运行得很好,但是,我想为我的应用程序选择最好的解决方案。虽然Akka是用Scala实现的,但它为Java和Scala提供了等效的API,这意味着你甚至不需要知道什么是Scala就可以成功地使用Akka。JGroups非常慢,我们不得不放弃它。看看这个:,更简单更快