什么是ZeroMQ底层设计架构

时间:2015-12-04 16:20:46

标签: networking overlay zeromq squid

我对ZeroMQ比较陌生,并希望就其内部架构提出一些建议。

我打算将ZeroMQ用作我工作的消息传递框架。我想要实现的基本思想是能够根据实现特定工作流程截止日期所需的负载和计算能力动态扩展基础架构。

因此,如果有必要添加更多节点,那么应用程序会生成新节点,并且消息传递框架也应该能够合并这些更改。我还应该能够指出应该进行额外计算的方式或框架如何动态添加新节点(如果有的话)。特定节点上的事件决定要在其他节点上执行的后续操作。这是我正在思考的场景或我的堆栈,但想知道它是否有意义:

  • 用户应用程序

  • ZeroMQ消息

  • 基于Squid-Content的路由

  • 重叠

  • 物理基质

我对上面的堆栈持怀疑态度,因为我相信ZeroMQ可以帮助人们实现大部分功能,从而使其变得更简单。

关于我的筹码几点:

物理基板是可用于计算或作为数据源的节点总数。

Overlay是一个逻辑网络,它基于可用于特定工作流的最近节点在物理网络上动态构建。即,如果两个节点频繁地交换数据,那么这两个节点在逻辑上彼此靠近放置。当我们使用ZeroMQ时,是否需要像CHORD等单独的叠加?

Squid主要用于基于内容的路由。我们使用ZeroMQ时是否需要Squid?

ZeroMQ消息传递用于应用程序的不同节点之间的通信。

基本上,我想知道的是,鉴于ZeroMQ具有更丰富的功能,是否可以使上述堆栈更简单。如果是这样,有人可以指出或分享想法。然而,我正在阅读ZeroMQ的文档,我发现理解ZeroMQ的内在设计有点困难。请帮忙。

由于

1 个答案:

答案 0 :(得分:0)

这里的用例非常具体,几乎不可能给出任何明确的答案。 ZeroMQ不是您构建到架构中的概念的直接替代品,但它可能会满足您尝试满足的目标,具体取决于您使用它们的方式。

我的建议是将您当前的架构放在一边,并开始尝试以ZMQ为核心构建一个新架构,并查看您遇到的堆栈其他部分所遇到的限制。

至于ZMQ的“内在设计”,这是您需要理解的基础知识:

  1. ZMQ套接字为您处理连接详细信息,包括管理网络打嗝 - 但这有限制,您需要知道
  2. 有不同种类的ZMQ套接字,他们对如何使用它们有意见。其中一些是异步通信,其中一些是严格同步的,一些是单向的,一些是双向的。
  3. 如果两个插座之间的连接断开(例如,一个节点发生故障,网络出现故障 - 不仅仅是短暂的打嗝),那么识别并重新建立连接是你的工作
  4. 没有内置的代理或拓扑,你必须自己设计和构建。
  5. ...最终,ZMQ为您提供了构建消息传递框架的工具集,它提供了一个完全实现的消息传递框架。所以,是的,它有能力替换你目前使用的其他一些工具,但你必须建立它。