ros 不同宽带速率负载均衡_zeromq-ros初步学习及测试 2019.9.8

项目任务:Zeromq-ros的安装调试

完成情况:完成了对zmq-ros的基本了解,确定了无人机zmq的模式为发布订阅模式,进行了同一电脑下不同进程的信息发布订阅的测试。

zeromq-ROS是一个中间传输层,它允许以一个协调模块来控制多个ros终端。它对socket进行了封装,他和socket的区别是,socket是端到端的,也就是一对一的,zmq是多对多的,它是一个消息队列库,它没有消息队列的服务器而像是一个网络通信库。

zeromq四种模型:一对一结对模型,请求回应模型,发布订阅模型,推拉模型。

一对一结对模型

主要用于进程内部线程间通信使用,数据可以双向流动,但不推荐使用。

请求回应模型

ee8fa202f1cdafa7b0d6fd8f7c65e2bf.png

由请求端发起请求,然后等待回应端应答,一个请求必须对应一个应答,从请求端的角度来看是发-收配对,从回应端的角度是收-发对。跟一对一结对模型的区别在于请求端可以是1~N个。请求端和回应端都可以是1:N的模型。通常把1认为是server,N认为是Client。通常把该模型主要用于远程调用及任务分配等。

发布订阅模型

发布端单向分发数据,且不关心是否把全部信息发送给订阅端。如果发布端开始发布信息时,订阅端尚未连接上来,则这些信息会被直接丢弃。订阅端未连接导致信息丢失的问题,可以通过与请求回应模型组合来解决。订阅端只负责接收,而不能反馈,且在订阅端消费速度慢于发布端的情况下,会在订阅端堆积数据。该模型主要用于数据分发。

5c02457dc4e1fb7eda0bd877433f48d9.png

推拉模型

Server端作为Push端,而Client端作为Pull端,如果有多个Client端同时连接到Server端,则Server端会在内部做一个负载均衡,采用平均分配的算法,将所有消息均衡发布到Client端上。与发布订阅模型相比,推拉模型在没有消费者的情况下,发布的消息不会被消耗掉;在消费者能力不够的情况下,能够提供多消费者并行消费解决方案。该模型主要用于多任务并行。

发布订阅和请求回应组合模型

7c4703a819483afee21a9cacd921a13f.png

具体步骤:

1. git clone https://github.com/ravijo/ros_zeromq_tutorial.git

2. catkin_make

3. sudo apt-get install libzmq3-dev

4.rosrun talker和listener

实现了一个终端发布,另一个终端接收话题。

2e2cc6d27e8a01bef6cb72de99719013.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值