我想要一个关于我的评估和担忧是否正确的反馈。
一段时间以来,我一直在研究数据分发服务、AMQP 和 ZeroMQ 这三者,用于在数据中心中构建数据传输层。这三个看起来都很有希望,但我在少数情况下遇到了一些阻塞问题。
为了给出一个上下文,我的要求是:
- 扩展到 500 多个物理节点、1000 多个发布者和订阅者。
- 支持消息的持久传递以照顾失败的订阅者。
- 总吞吐量应在 100 万条消息/秒以北
AMQP 的问题:
- Broker 架构似乎是整个部署设置中的瓶颈和中心故障点。我可以通过放置联合和集群来提高待处理消息的性能和可用性,从而使我的部署复杂化,但它们似乎仍然不能防故障。
- 持久队列的性能似乎非常低。我的示例应用程序只能为 6-7K 消息/核心/队列/应用程序提供时钟。
ZeroMQ 的问题:
- 文档似乎有点缺乏深度。
- 待处理消息的系统行为似乎在 PUB/SUB 通信模型中引起了麻烦。请参考:zeromq 如何使用 PUB/SUB 模式处理慢消费者
OpenSplice DDS:我没有发现 DDS 协议中缺少任何东西,除了在行业中的采用。想知道对该产品在稳定性、性能或限制方面的第一手评价。