当前位置: 首页 > 知识库问答 >
问题:

ZeroMQ和WebSocket之间的差异

江飞章
2023-03-14

我想知道ZeroMQ和WebSockets协议之间的区别。我知道WebSocket是为web浏览器客户端设计的,但我假设它也可以用于服务器对服务器。在这种情况下,我想知道在实时消息传递中使用WebSocket而不是像ZeroMQ这样的东西是否会更好。具体来说,我担心的是在临时网络故障的情况下可靠性和消息丢失。

共有2个答案

贺皓
2023-03-14

你的问题听起来像“Apache和HTTP有什么区别?”

WebSockets只是一个协议(类似于http),而ZeroMQ是一个协议和服务器,负责消息从接收到消费的整个生命周期。

丁韬
2023-03-14

您可能很快就会意识到,一旦进入实时领域,就没有理由花费时钟周期将任何消息包装到XHTML-Matrjoska-in-Alne-Matrjoska-in-Alne-Matrjoska类似的信封内信封和相关的效率低下。

Real-Time很难实时运行,因此需要花费/损失处理taskUnit所需的最小可实现时间。

虽然有人试图以类似的*ML-“性感”方式重新包装事物,但由此产生的性能只是下降了,超出了实时领域,而不是对在实时领域表现更好有任何重大帮助。

这方面的一个很好的例子是与“准IT大师群体”的努力有关的胡说八道,他们为金融市场的标准修复协议“扩展”了XHTML编码的有效负载,而高频交易中的créme-A-la-créme努力则与此相关

虽然WebSockets关注的是port:80html/XHTML——类似于一些高级有效负载内容的包装和框架,ZeroMQ的方向正好相反。它“隐藏”

WebSocket协议具有固定的客户端和服务器角色以及HTTP风格的握手。

WebSocketfocus以UTF-8/CRLF内容格式化结束,在一对0×00

如果你从未使用过ZeroMQ,
在深入了解更多细节之前,你可能会喜欢在不到五秒钟的时间里先看一下ZeroMQ原则

ZeroMQ为设计人员提供了一个构建在构建块上的开放式体系结构,这些构建块经过精心设计,以特定的方式进行协作——是的,它们具有行为——设计人员正在将这些行为用于更复杂的消息传递模式。这允许无限的上层抽象,建立在一组经过验证的构建块--ZMQ上。PUBLISHER只向所有ZMQ发送消息。订阅者-s,他们收听并展示了各自订阅某些正在发布的新闻的意愿。其他ZMQ原语有助于制造基于循环的负载平衡器,其他步骤允许构建故障安全体系结构和类似的高级解决方案。

当您询问协议的可靠性时,在协议级别还有更重要的属性--组装/重新组装/分解开销、性能可伸缩性、API到线访问延迟、线程安全以及在不断增长的工作负载级别下性能属性的松弛。

虽然WebSocketport:80通信对任何非WebSocket入侵都是“开放的,ZeroMQ低层协议是为快速、高效、独占的ZMQ-2-ZMQ、对等握手而设计的,所有设计工作都是从更高的抽象API级别构建的,从中可以添加基于应用程序的软信号,这可能会引入修复/补救活动,以便您请求的丢失消息问题不会对应用程序状态产生任何不利影响。

还想在线程和零拷贝方面获得一些高级奖励积分

 类似资料:
  • 问题内容: 很快就有两个相等运算符:double equals( )和Triple equals( ),两者之间有什么区别? 问题答案: 简而言之: 操作员检查其实例值是否相等, 操作员检查引用是否指向同一实例, 长答案: 类是引用类型,可能有多个常量和变量在幕后引用类的同一单个实例。类引用保留在运行时堆栈(RTS)中,其实例保留在内存的堆区域中。当您控制平等时, 这意味着它们的实例是否彼此相等。

  • 我编写了一个简单的脚本,它接受任意数量的参数来演示< code>$@和< code>$*之间的区别: 在我做的 CLI 上 这就是打印出来的 因为它们是相同的,这是否意味着等于?还是我遗漏了一点?

  • 问题内容: package main 该代码可以很好地工作。但是,如果按如下所示更改方法,则会导致死循环。区别在于将替换为。为什么? 问题答案: 因为程序包检查要打印的值是否具有方法(或换句话说:是否实现接口),如果是,则将调用它以获取值的表示形式。 软件包doc中对此进行了说明: […]如果操作数实现String()字符串方法,则将调用该方法将对象转换为字符串,然后根据动词的要求对其进行格式化(

  • 我正在通过做微控制器项目来自学C++。我当前的项目是使用一对或Adafruit羽毛分组无线电。无线电数据包的库函数需要一个C样式的字符串(我相信),我理解它是一个char的数组。 我已经设置了一个枚举来反映接收方的各种操作,并希望将该状态发送回发送方。所以我想把枚举变成char的数组。 在搜索将枚举转换为char数组的方法时,最简单的方法(对我来说)是将枚举变量传递给带有switch语句的函数,该

  • 我是Hadoop的新手。我正在浏览专业Hadoop解决方案的书,以获得一些关于Hadoop和生态系统的知识。我想澄清HDFS和HBase之间的主要区别是什么。我理解的方式就像两者都是存储系统。它们的区别只是在访问数据方面。HBase通过非关系型数据库访问数据,HDFS使用计算框架(MapReduce)处理数据。如果是这种情况,为什么我们不能只有一个存储HDFS或HBase。根据需求,他们将插入和插

  • 有人能解释一下 和 我不知道确切的意思。