Performance Corosync、ZeroMQ和Spread的CPG在消息传递方面如何比较?

Performance Corosync、ZeroMQ和Spread的CPG在消息传递方面如何比较?,performance,messaging,high-availability,zeromq,spread-toolkit,Performance,Messaging,High Availability,Zeromq,Spread Toolkit,我感兴趣的是: 演出 潜伏期 吞吐量 资源使用率(CPU、内存等) 高可用性 没有单点故障 特征 运输选择 路由选择 稳定性 社区 积极发展 广泛使用 有用的邮件列表,论坛,IRC频道 易于与当前代码库集成 也许是哥查斯 你认为我遗漏了什么 我读过关于它们的书,但我找不到一个好的比较。特别是,我对比较它们的性能基准感兴趣。(也许我应该自己做一个!我希望不会。)好吧,我还没有用过另外两个,但我可以和大家分享我的经验。在我看来,它比你们所有人都好 速度和吞吐量 它和TCP一样快,

我感兴趣的是:

  • 演出
    • 潜伏期
    • 吞吐量
    • 资源使用率(CPU、内存等)
  • 高可用性
    • 没有单点故障
  • 特征
    • 运输选择
    • 路由选择
  • 稳定性
  • 社区
    • 积极发展
    • 广泛使用
    • 有用的邮件列表,论坛,IRC频道
  • 易于与当前代码库集成
  • 也许是哥查斯
  • 你认为我遗漏了什么

我读过关于它们的书,但我找不到一个好的比较。特别是,我对比较它们的性能基准感兴趣。(也许我应该自己做一个!我希望不会。)

好吧,我还没有用过另外两个,但我可以和大家分享我的经验。在我看来,它比你们所有人都好

速度和吞吐量 它和TCP一样快,不使用CPU或大量内存。它可以毫不费力地快速推送大量信息。在内存耗尽之前,它会使您的网络通道饱和(我怀疑您是否能够最大限度地使用CPU)。与某处进行了比较,ZMQ的表现优于它2倍。从我在网上读到的信息来看,它在高速交易中被使用

RabbitMQ也是一个非常好的工具。看看它-它可能非常适合你正在寻找的东西

斯波夫 如果正确设计应用程序,则不会出现单点故障。将两个插座连接到另一个插座非常容易。因此,如果其中一个失败,另一个将负责处理工作。在这一过程中,有很多事情可以帮助你。阅读以了解如何在没有SPOF的情况下设计应用程序

运输和路线 关于传输选项(如果我理解正确的话)——由您定义协议。ZeroMQ基本上向您承诺,它将向另一端提供这一块数据。使用JSON,协议缓冲区,摩尔斯电码,任何你喜欢的

AMQP中没有内置的路由。同样,由您指定哪个ZeroMQ套接字连接到哪个,但这非常简单

稳定性 我已经用它开发了几个月(使用Python),但没有发现它的稳定性有任何问题。即使当我试图以错误的方式使用它时,它也会抛出一个很好的错误,告诉我不要这样做。即使重新启动/终止某些服务并将其恢复,也不会导致任何问题。我认为这是一个非常稳定的软件

请注意:始终使用最新版本-2.1版本非常注重稳定性,因此许多稳定性问题都在其中得到了解决

社区 20多种语言的绑定,活动邮件列表,非常好的文档,频繁发布。还有别的吗

整合 因为它是作为一个库设计的,所以由您自己来设计应用程序(不同于框架的情况),而且它非常与众不同。它感觉有点像一个普通的TCP套接字,功能更强大,使用更方便(它保证消息将作为一个整体传递,而不仅仅是前128个字节,其余的则与常规套接字的情况相同)

戈查斯 有一些,但它们都记录在指南中。(例如:当您连接(SUB)到PUB套接字时,可能会错过它发出的前几条消息。指南中对此进行了解释,并给出了处理方法)

总体上 我发现这是一款设计最好的软件——稳定、编写良好、文档齐全,不妨碍我的工作


我建议你从头到尾地阅读。这本书写得很好,有很多语言(包括C++)的例子,它描述了很多边缘情况和难点。

我所说的传输选项是指较低层的协议选项,如TCP、UDP等。感谢您的全面回答:)