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