Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Networking 什么是ZeroMQ底层设计架构_Networking_Overlay_Zeromq_Squid - Fatal编程技术网

Networking 什么是ZeroMQ底层设计架构

Networking 什么是ZeroMQ底层设计架构,networking,overlay,zeromq,squid,Networking,Overlay,Zeromq,Squid,我对ZeroMQ比较陌生,希望对其内部架构提出一些建议 我计划使用ZeroMQ作为我工作的消息传递框架。我想要实现的基本思想是能够根据实现特定工作流期限所需的负载和计算能力动态扩展基础设施 因此,如果需要添加更多节点,那么应用程序将生成新节点,消息传递框架也应该能够合并这些更改。我还应该能够指出应该在哪里进行额外的计算,或者框架如何动态地添加新节点(如果有的话)。特定节点上的事件决定要在其他节点上执行的后续操作。下面是我正在思考的场景或堆栈,但我想知道它是否有意义: 用户应用程序 ZeroMQ

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

我计划使用ZeroMQ作为我工作的消息传递框架。我想要实现的基本思想是能够根据实现特定工作流期限所需的负载和计算能力动态扩展基础设施

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

  • 用户应用程序

  • ZeroMQ消息传递

  • 基于Squid内容的路由

  • 覆盖层

  • 物理基质

我对上面的堆栈有点怀疑,因为我相信ZeroMQ有助于实现大部分功能,从而使其更简单

关于我的堆栈的几点:

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

Overlay是一个逻辑网络,它基于特定工作流可用的最近节点动态构建在物理网络上。i、 e.如果两个节点频繁交换数据,则这两个节点在逻辑上彼此靠近。当我们使用ZeroMQ时,是否需要像CHORD等单独的覆盖

Squid基本上用于基于内容的路由。使用ZeroMQ时是否需要Squid

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

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


谢谢

这里有太多特定于您的用例的内容,几乎不可能给出任何明确的答案。ZeroMQ并不能直接替代您在体系结构中构建的概念,但是它可能会满足您试图实现的目标,具体取决于您如何使用它们

我的建议是将您当前的体系结构放在一边,开始尝试构建一个以ZMQ为核心的新体系结构,看看您在哪里遇到了由堆栈的其他部分解决的限制

关于ZMQ的“内在设计”,以下是您需要了解的基础知识,作为起点:

  • ZMQ套接字为您处理连接细节,包括管理网络故障,但这有您需要知道的限制
  • 有不同种类的ZMQ套接字,他们对如何使用它们有不同的看法。其中有些是异步通信,有些是严格同步的,有些是单向的,有些是双向的
  • 如果两个套接字之间的连接被切断(例如,一个节点发生故障,网络出现故障——这不仅仅是暂时的故障),您的工作就是识别并重新建立该连接
  • 没有内置的代理或拓扑,您必须自己设计和构建

  • 。。。最终,ZMQ为您提供了一个构建消息传递框架的工具集,但它并没有提供一个完全实现的现成消息传递框架。因此,是的,它有能力替换您当前使用的其他一些工具,但您必须构建它。

    我仍然没有得到最初问题的答案。当您告诉ZMQ有能力替换其他一些工具时,您指的是什么工具?你能不能详细说明一下ZMQ可以提供哪些功能,或者它可以消除哪些工具,以我的场景为例。你没有提供关于如何使用squid的详细信息,或者你的叠加功能如何,你试图解决哪些问题以及如何解决这些问题的详细信息。可以想象,您正在使用这些东西来解决某些问题,ZMQ将为您提供一种更简单的解决方法,但如果您不深入了解堆栈中的更多细节,我将无法知道。