关于mqtt消息并发量处理的思考

1.模拟mqtt大量消息并发的场景

方式一:写一个进程,用while循环,用usleep函数,延时时微妙级别,一直发。最快1秒发1000*1000条消息

方式二:用多线程发,比如10个线程,每个线程发10000条数据

2.mqtt客户端订阅数据处理,这时候相当1秒要接收很多条数据。

方式一:在订阅接收消息的回调函数中不做任何处理,此时进程会一条条接收处理,并调用相应的回调函数,比如一个回调函数处理好使2秒,300条就是600秒。

好处:简单,会处理接收到的每一条消息。

缺点:耗时较长

方式二:每接收到一条消息就建立一个线程,并将topic,msg,len传递给线程函数。

缺点:当发送的消息过快时会造成topic的内容传递给线程出错。

有点:处理速度快。

实验数据:当发送消息间隔为0.3ms时,多线程处理正常,低于0.3ms时就会出错

扫描二维码关注公众号,回复: 4797475 查看本文章

当两次pub的消息间隔很短时会造成sub端多线程问题

目前pub间隔3um

sub开启线程间隔1um

猜你喜欢

转载自blog.csdn.net/weixin_42627035/article/details/85881668
今日推荐