365备用网址器

Cloud Wind的BLOG ZeroMQ模型

请求响应模型。
请求在应用程序结束时启动,并等待响应以响应请求。
从请求者,必须有一对发送和接收。否则,应答方必须是发送 - 接收对。
申请人和响应者都可以是1:N模型。
通常,1被认为是服务器,N被认为是客户端。
ZeroMQ可以支持路由功能(实现路由功能的组件称为设备),从1:N扩展到N:M(只需要组合多个路由节点)我)。
从该模型中,较低级别的端点地址对较高层隐藏。
每个请求都隐式包含响应地址,应用程序不关心它。
发布订阅模型。
在此模型中,发布者仅在一个方向上发送数据,而不考虑是否所有信息都发送给订阅者。
如果发布者开始发布信息,则订户未连接且信息被直接销毁。
但是,一旦订户连接,媒体将确保没有信息丢失。
同样,订阅者只负责接收而不是反馈。
如果发布者和订阅者需要进行交互(例如,验证订阅者是否已连接),请使用其他套接字使用请求响应模型来满足此要求。
管模型
在此模型中,管道是单向的,并且数据流在一个方向上从PUSH推送到PULL。
任何并行分布式问题都可以与这三个模型结合起来解决这个问题。
ZeroMQ非常漂亮,专注于解决消息通信的基本问题。
您可以看到,基于定义良好的模型,可以非常轻松简单地实现API。
此模型当然不是1:1而是1:N,因此您不再需要进行链接/监听/接受来配置服务器。而且,不需要为每个频道保留标识符。
在客户端连接之前,您不必担心服务器是否启动(链接)。
在之前的模型中,重点是通信方的责任,而不是它们的实现方式(侦听端口或连接端口)。
对于协同工作的复杂多进程系统,您不必担心启动进程的顺序(前几年设计的系统具有非常复杂的启动脚本)。
使用ZeroMQ,您不必担心底层实现是使用短连接还是长连接。
ZeroMQ的Transient和Durable套接字与实现层维护TCP连接时的套接字相同。
这是一个概念上的差异。
在Durablesocket的情况下,其寿命可能比过程的生命周期长。当进程结束时,您可以在重新开始后保留前一个套接字。
当然,这并不是为了防止程序崩溃。
它只是提出了这个模型,允许您根据您的设计需要运行它。
ZeroMQ根据需要为磁盘上的数据传输放置缓冲区(如果内存有限)。


上一篇:这里的OC特别是同一个人。 下一篇:没有了