为分布式应用程序选择通信库

时间:2012-01-03 13:17:32

标签: tcp cluster-computing distributed-computing multicast

我开始开发分布式应用程序,我们面临一个很大的困境!我们需要一个易于使用的通信库,并具有以下功能:

  • 可靠的沟通
  • 基团/信道
  • 单播
  • 多播
  • 自动发现
  • 安全
  • 由多种编程语言支持
  • 支持多种操作系统
  • 支持地理分布是一个加分

关于此应用程序的几句话

这个分布式项目背后的主要思想是拥有一个前端,一个后端(处理应用程序)和数百个代理,这些代理将从一些数据中心收集数据。代理和后端之间的通信应该尽可能简单,我们应该有可能推送配置或从代理中提取实时数据。需要在代理和后端之间传输的最小安全性。此外,我们应该有可能在后端群集中添加/删除新节点。如果后端群集的节点数量正在发生变化,则代理应该重新分配其负载(可能这应该通过后端通过过滤来实现)。通常消息(代理和后端之间)不会超过1500字节,但有时我们应该能够发送大数据包(一个好的碎片管理是必须的)。

我们直到现在才发现:

  • 的JGroups
  • 传播
  • openpgm
  • zeromq
  • Hazelcast

如果您有开发群集应用程序的经验,请告诉我上述哪些框架适合我的项目?另外,如果您了解其他适用于我的项目且未在上面列出的免费图书馆,请告诉我们!

3 个答案:

答案 0 :(得分:2)

我强烈推荐ZeroMQ。另请参阅Heartbeat,Linux-HA中的群集消息传递层。 http://linux-ha.org/wiki/Heartbeat

答案 1 :(得分:1)

post是我在该主题上看到的最新和最全面的评估。另请查看hurricane

答案 2 :(得分:-1)

我没有在这方面工作的直接经验所以请原谅我,如果我的建议有点愚蠢。

我遇到过一个似乎对您有用的免费库,它由Google生成,名为Protocol Buffers。它专门设计用于语言中立,平台中立的环境和通信协议的生成。

还有许多third party RPC implementations可以使用协议缓冲区格式。

我希望这有用。