【发布时间】:2012-02-01 12:56:39
【问题描述】:
我开始开发一个分布式应用程序,我们遇到了一个大难题!我们需要一个易于使用并具有以下功能的通信库:
- 可靠的通信
- 群组/频道
- 单播
- 多播
- 自动发现
- 安全
- 支持多种编程语言
- 支持多种操作系统
- 支持地理分布是一个优势
关于这个应用程序的几句话
这个分布式项目背后的主要思想是拥有一个前端、一个后端(处理应用程序)和数百个代理,这些代理将从一些数据中心收集数据。代理和后端之间的通信应该尽可能简单,我们应该有可能推送配置或从代理中提取实时数据。代理和后端之间的传输需要最低限度的安全性。此外,我们应该有可能在后端集群中实时添加/删除新节点。如果后端集群的节点数量发生变化,代理应该重新分配它们的负载(可能这应该由后端通过过滤来完成)。通常消息(代理和后端之间)不会超过 1500 字节,但有时我们应该能够发送大数据包(必须进行良好的分片管理)。
到目前为止我们发现了什么:
- jGroups
- 传播
- openpgm
- zeromq
- 榛树
如果您有开发集群应用的经验,请告诉我以上哪些框架适合我的项目?另外,如果您知道其他适合我的项目且未在上面列出的免费库,请告诉我!
【问题讨论】:
-
更多详情请看我的博文randombugs.com/cluster/…,但请在此处对stackoverflow发表评论。
-
看看 Akka akka.io,它具有您正在寻找的大部分功能。
-
Akka 没有 C++ 绑定。
-
回到 2012 年,只有少数解决方案可供选择。现在有Kafka、RocketMQ、RabbitMQ等。
标签: tcp cluster-computing distributed-computing multicast