ZeroMQ学习随笔

ZeroMQ与ActiveMQ或者与RabbitMQ相比,存在着本质的区别,ActiveMQ可能更像一个消息队列服务器,而ZeroMQ可能更像是一组底层通信协议。(介于应用层与传输层的通信协议)

工作模式:

ZeroMQ与其他MQ类似,也实现了3中最基本的工作模式:发布-订阅,请求-应答,管道

工作方式1:发布-订阅


在此模式下,发布者会给自己绑定一个IP地址,订阅者连接到此地址,在此模式下,信息是单向流通的,发布者发送消息的过程中,不会去考虑是否存在订阅者。

在此模式下,可能会导致信息丢失,因为发布者不考虑订阅者是否存在。但是,如果订阅者先行启动时,也可能会存在丢包的问题,因为订阅者在发布者启动后,会尝试与发布者建立TCP连接关系,这个TCP连接可能会导致第一波数据的丢失。

因此如果不在双方直接增加同步策略,消息的丢失不可以避免。

2.请求-应答


在此模式下,必须严格遵循一问一答的形式。

发送消息后,若没有接受到回复,则发送第二条消息时会报错

同理,接收方,如果没有接收到消息,则不允许发出消息。

3.管道模式


管道模式中,我们可以认为Worker是一个客户端,而任务发生器和任务收集器是服务端。

猜你喜欢

转载自blog.csdn.net/huu163/article/details/80547898