我们目前正在将ZeroMQ从2.2.12版本升级到4.0.5版本,我们发现自升级以来性能明显较差。
我们有一个相当简单的DEALER/DEALER拓扑结构,具有1:1或1:many连接。我们正在使用轮询在连接的任一端运行消息泵。
我们使用了许多不同的绑定(ffin-rzmq、clrzmq、jzmq和zmq_cpp),以允许用不同语言编写的组件进行通信。我们所有的组件似乎都存在同样的性能问题。
我们在Windows 7下运行,使用环回(127.0.0.1)TCP套接字。
有人知道可能出了什么问题吗(甚至我需要在这里提供任何其他信息?)
事实证明,性能并不慢,是某些组件之间的消息丢失导致系统行为不端。
这是由于我们在系统的某个部分使用了不受支持的套接字对(DEALER/PUSH)和(DEALER/PULL)造成的。这在ZeroMQ 2中有效,但在4中无效。
修复方法是将替换为支持的拓扑(在我们的案例中是DEALER/DEALER)。