ZeroMQ和WebSocket之间的差异

ZeroMQ和WebSocket之间的差异,websocket,zeromq,Websocket,Zeromq,我想知道ZeroMQ和WebSockets协议之间的区别。我知道WebSocket是为web浏览器客户端设计的,但我假设它也可以用于服务器对服务器。在这种情况下,我想知道在实时消息传递中使用WebSocket而不是像ZeroMQ这样的东西是否会更好。具体来说,我担心的是可靠性和在出现临时网络故障时丢失的消息。你的问题听起来像是“Apache和HTTP有什么区别?” WebSockets只是一个协议(类似于http),而ZeroMQ是一个协议和服务器,负责消息从接收到消费的整个生命周期。a:不过,

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

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

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

a:不过,实时消息是一个不错的标签 您可能很快就会意识到,一旦进入实时领域,就没有理由花费时钟周期将任何消息包装到XHTML Matrjoska中,在另一个Matrjoska中的另一个Matrjoska中的另一个Matrjoska中的信封中,以及相关的低效率

实时努力实现实时操作,因此花费/损失了处理任务单元所需的最短时间

虽然有人试图以类似的*ML-“性感”方式重新包装东西,但最终的性能只是降低了,超出了实时领域,而没有任何显著的帮助来提高性能

这方面的一个很好的例子是与“准IT大师群体”的努力有关的胡说八道,他们为XHTML编码的有效负载进行金融市场的标准修复协议“扩展”,虽然高频交易研发中的créme-a-la-créme工作花费了巨大的资金/时间/精力,用于如何减少与每个IP数据包线卸载相关的纳秒,以及对等待的实时
数据进行尽可能快的去映射/去编码
——其中包含的元素采用了一种极简的设计
prefixTag:value
原始规格

答:协议差异是主要原因 虽然
WebSockets
关注的是
port:80html/XHTML
——类似于一些高级有效负载内容的包装和框架,
ZeroMQ
却正好相反。它“隐藏”和“卸载”代码,使其不受传输的任何低级细节的影响(因此通过
INPROC
/
IPC
/
TCP
/
PGM
/
/
EPGM
/
UDP
/
VMCI
/…传输类透明地提供服务,无论是本地、云端还是两者的混合)

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

WebSocket
focus以UTF-8/CRLF内容格式化完成,在一对
0×00
0xff
字节之间构建框架,并建立在WebBrowser解析此类缓冲消息的能力之上,而浏览器的设计就是为了能够做到这一点)


如果您从未使用过ZeroMQ,
您可能会喜欢在深入了解更多细节之前先看看


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

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

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


努力工作的并发系统程序员
我还想了解一些关于线程化零拷贝零延迟的高级奖励点,您可能已经注意到,ZeroMQ是一个无代理的消息/信令框架,因此消息生命周期在分布式对等节点网络中进行管理,以分散的方式参与运输类特定职责。您的答案不应提及(cit.:)“…和负责的服务器…直到它被消费”。对于ZeroMQ可伸缩正式通信模式的框架来说,这根本不准确或不正确。一个“Apache和HTTP”的苹果和橙子之间差异的例子很好,但是您可能想修改您的其他语句。参考此