zeroMq的使用

本文详细介绍了ZeroMQ,一种基于消息队列的多线程网络库。ZeroMQ提供了无锁队列、批量处理算法和线程绑定等特性,支持多种传输协议。在模式上,讲解了Request+Reply模式、Pub-Sub模式和Push-Pull模式的应用场景和工作原理。Request+Reply模式用于远程调用和任务分配,Pub-Sub模式适用于数据分发,Push-Pull模式则用于多任务并行处理。ZeroMQ在发布订阅模式中,消息过滤在订阅者端进行,确保了消息的高效分发。
摘要由CSDN通过智能技术生成

ZeroMQ简介:

ZeroMQ是一种基于消息队列的多线程网络库.提供跨越多种传输协议(TCP:传输控制协议,当传输出现错误时,能自动予以纠正;UDP:用户数据包协议,当传输出现错误时会将错误信息丢弃;)的套接字,ZeroMQ是一个可伸缩层,可并行运行,分散在分布式系统间.

zeroMQ在设计上主要采用了以下几个高能性的特征:

1.无锁的队列模型
2.批量处理的算法
3.多核下的线程绑定,无须CPU切换
 

ZMQ提供了一组单播传输协议(inporc, ipc, tcp),和两个广播协议(epgm, pgm)。

TCP套接字和ZMQ套接字之间在传输数据方面的区别:

  • ZMQ套接字传输的是消息,而不是字节(TCP)或帧(UDP)。消息指的是一段指定长度的二进制数据块,我们下文会讲到消息,这种设计是为了性能优化而考虑的,所以可能会比较难以理解。
  • ZMQ套接字在后台进行I/O操作,也就是说无论是接收还是发送消息,它都会先传送到一个本地的缓冲队列,这个内存队列的大小是可以配置的。
  • ZMQ套接字可以和多个套接字进行连接(如果套接字类型允许的话)。TCP协议只能进行点对点的连接,而ZMQ则可以进行一对多(类似于无线广播)、多对多(类似于邮局)、多对一(类似于信箱),当然也包括一对一的情况。
  • ZMQ套接字可以发送消息给多个端点(扇出模型),或从多个端点中接收消息(扇入模型)

ZeroMQ模式详解:

1.Request+Reply模式
问答模式:又请求端发起请求,然后等待回应端应答.一个请求必须对于一个回应,从请求端的角度来看是发-收配对,从回应端的角度是收-发对,请求端可以是1~N个,该模型主要用于远程调用及任务分配等.

使用REQ-REP套接字发送和接收消息是需要遵循一定规律的,客户端首先使用zmq_send()发送消息,在使用zmq_recv()接收,如此循环,如果打乱了这个顺序(如连续发送两次)则会报错.类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值