ZeroMQ的可扩展性如何?

时间:2012-02-14 23:47:27

标签: scalability zeromq

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

3 个答案:

答案 0 :(得分:10)

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

我们假设他们是。每两年,一个盒子上的核心数量理论上可以翻倍。因此,如果我们今天拥有16核盒子,它将在20年内成为16K核心。

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

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

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

答案 1 :(得分:9)

我们试图尽可能地扩展它,但我个人只测试了多达16个核心盒。在达到极限时,我们已经看到几乎线性缩放。

答案 2 :(得分:5)

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

ZeroMQ已经因其成为最快的结构化消息传递协议而享有盛誉,因此,如果你要做基准选择技术,ZeroMQ绝对应该是其中之一。

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