我想知道我对评估和关注点的理解是否正确。
我已经研究了一段时间的数据传输层建设,包括Data Distribution Service、AMQP和ZeroMQ。这三个都有很好的前景,但是在一些方面遇到了一些问题。
为了说明情况,我的要求是:
- 支持扩展至500多个物理节点、1000多个发布者和订阅者。
- 支持可靠交付消息以处理失效的订阅者。
- 聚合吞吐量应该超过每秒100万条消息。
AMQP存在的问题:
- 代理架构似乎是整个部署设置中的瓶颈和单点故障。我可以通过设置联邦和集群来提高未决消息的性能和可用性,但它们似乎仍然不是无法出错的。
- 耐用队列的性能似乎非常低。我的示例应用程序只能以每个核心/队列/应用程序6-7K消息的速度运行。
ZeroMQ存在的问题:
- 文档似乎缺少深度。
- 系统的行为似乎会在PUB/SUB通信模式下引发未决消息的问题。请参阅:How zeromq handles slow consumers with PUB/SUB mode
OpenSplice DDS:
我在DDS协议中没有发现任何缺陷,除了在工业界的采用方面存在一些不足。希望能够获得有关该产品在稳定性、性能或限制方面的第一手评估。
ZMQ_HWM: high water mark
和ZMQ_SWAP: disk offload size
。请查看 http://api.zeromq.org/master:zmq-getsockopt 了解详细信息。 - Evgeniy Berezovsky