【问题标题】:How Scalable is ZeroMQ?ZeroMQ 的可扩展性如何?
【发布时间】:2012-03-06 08:32:48
【问题描述】:

ZeroMQ 的可扩展性如何?我对了解它在大量(10,000 - 15,000)个内核上运行的潜力特别感兴趣。

【问题讨论】:

标签: scalability zeromq


【解决方案1】:

您没有提及您的 10k 或 15k 内核是否在同一个盒子上。

让我们假设他们是。理论上,每两年一个盒子上的核心数量可以翻一番。因此,如果我们今天有 16 核的盒子,那么 20 年后将是 16K 核。

所以现在,您的问题可能是,“ZeroMQ 是否会帮助我的应用程序扩展到如此大量的内核,以便在未来 20 多年内扩展?”答案是“是的,但前提是你正确使用它”。这意味着使用适当划分工作和数据流的 inproc 套接字和模式来设计您的应用程序。随着时间的推移,您将需要调整架构。

如果您的问题是“我是否可以在多个应用程序之间使用这么多内核来获利”,那么答案在于您的 O/S,而不是 ZeroMQ。您的 I/O 层可以处理负载吗?可能,是的。

如果您的问题是“我可以在 10K-16K 盒子的云中使用 ZeroMQ”,那么答案是“可以,这已经在实践中得到证明”。

【讨论】:

  • 谢谢 Pieter,我的意思是核心分布在多个盒子上。您是否知道任何讨论这种级别的可扩展性的论文,或任何这种规模的参考网站?
  • 因此,即使使用 OpenAMQ,我们也将生产扩展到 3K-4K 机器(每个机器多核),并与单个代理通信。这是 0MQ 中任何 1-N 流的基本扩展级别:仅受操作系统可以处理的套接字数量限制。
【解决方案2】:

请注意,尽管 ZeroMQ 在内部是多线程的,但仅仅依靠它来扩展它以扩展到大量内核可能并不明智。然而,由于 ZeroMQ 使用相同的 API 进行机器间、进程间和线程间通信,使用 ZeroMQ 编写应用程序很容易,它可以无缝地移动到每核一个进程的场景或网格结构中。很多很多机器。

ZeroMQ 已经以最快的结构化消息传递协议而闻名,所以如果您要进行基准测试来选择技术,ZeroMQ 绝对应该是其中之一。

使用 ZeroMQ 的两大原因是其易于使用的跨语言 API(请参阅 ZeroMQ 指南站点上的所有示例)以及它的低开销,无论是在线字节数还是延迟方面.例如 ZeroMQ 可以利用 UDP 多播比任何 TCP 协议运行得更快,但应用程序程序员不需要学习新的 API。都包含在内。

【讨论】:

    【解决方案3】:

    我们已尝试使其尽可能可扩展,但我个人仅在最多 16 个核心盒上进行了测试。达到这个限制,我们几乎看到了线性缩放。

    【讨论】:

      猜你喜欢
      • 2010-09-07
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      • 2010-09-17
      • 2015-04-04
      • 2012-12-23
      相关资源
      最近更新 更多