ZeroMQ生产准备好了吗?

Ale*_*x B 32 messaging zeromq

ZeroMQ作为通用消息传递中间件的经验是什么?

  1. 您是否遇到任何显示停止错误或非显而易见的"功能"?例如,2.0没有正确地刷新消息,故障排除指南似乎给出了最可怕的解决方法:" sleep(1)退出前".
  2. API是否降低了应用程序的复杂性,还是证明它很麻烦?
  3. 向后兼容性经常被破坏吗?

ysi*_*son 30

我用它进行研究,所以"半生产".这是一个很棒的框架,一旦你完全了解它,事物的架构方式肯定是有意义的.但是,考虑到生产就绪,我遇到了太多问题.我正在使用jzmq,所以其中一些可能是特定的.

  1. 在OS X/Eclipse上设置jzmq是......不愉快.
  2. 启动应用程序偶尔会导致ZeroMQ C代码中的断言失败,因此我需要将我的应用程序包装在检查此异常状态的内容中.
  3. 错误通常是非常不合理的.我有太多非法状态异常,没有解释性消息.
  4. 没有对TLS的支持.这对我来说几乎是一个交易破坏者,我很容易看到它排除了它对许多应用程序的可用性.
  5. 文档"关闭".该官方指南是好的,但如果你有一个具体的问题,它通常是没有帮助的.当谷歌搜索时,我需要比平时更长的时间来找到答案.然而,邮件列表非常活跃.

但是,这是一个很大但是,我无法计算它为我节省了多少工时.这篇文章总结了一些让生活更愉快的方式.


Bri*_*ion 14

我也在"半生产"环境中使用ZeroMQ(DARPA的原型设计).到目前为止,它已经非常适合"将猫绑在一起",特别是当这些猫用不同语言编写并生活在不同的机器上时.可用的套接字习惯用法使得分布式计算问题的思考变得非常简单.ZeroMQ的优势在于人体工程学:坚实的心理模型和丰富的语言绑定.

但是,如果您遇到严格的性能限制,请谨慎行事.我正在研究一个实时系统,并发现尽管ZeroMQ旨在成为一个高性能的解决方案,但它还没有为黄金时段做好准备.我认为现有的架构具有巨大的潜力; 它似乎被一些琐碎的错误所阻碍.我可能应该期望从一个发展如此迅速的图书馆,在相对较短的时间内从0.0到3.0.尽管如此,我还是认为我可以直接替换自己的手工编写的协议栈并立即打击一些交易破坏者.如果您决定使用ZeroMQ,请记住您在传输层之上工作得很好,如果性能不太理想,那么您可以做的很少.

话虽这么说,邮件列表和IRC频道上的聊天非常好.开发人员似乎真正对构建完全最先进的东西感兴趣.他们喜欢他们的图书馆有嗡嗡声,并且习惯于认真,有趣的事情.他们是忙碌的人,所以不要指望大量的手持.但是,如果你遇到了真正的问题,他们很想知道发生了什么.

一句话:一把伟大的瑞士军刀,用于解决日常分布式计算问题.如果你正在寻找最前沿的表现,要小心; 它至少有一个主要的释放.尽管如此,未来对于这个项目看起来很棒,所以使用它并支持它.