我业余在用go语言重新设计和实现一个通用物联网平台,订阅emqx的时候,出现了无限重复消费的情况。昨天解决了,今天记录一下。
问题回放
压测3000连接,每个客户端1秒发送1条模拟数据。合计3000/s。
![3217d71aaf423f0bf867f3aa448b44b2.png](https://i-blog.csdnimg.cn/blog_migrate/50ad7d2f45170fdd2a005c6959ad8df6.jpeg)
3000客户端
奇怪的是,当我跑起订阅的程序后,消费的速度统计已经接近100000/s,明显不对。而且根本没停下来的意思。
![41a0c697dcb3039d163c0e86fe73bb80.png](https://i-blog.csdnimg.cn/blog_migrate/83c0210cd7612457fda05d145a63d7d8.jpeg)
iot-worker消费截图
sent是代表emqx发送的数据量,可以看到是4453万+,received代表emqx接受到的数据量,可以看到是2812万+。因为我只有一个消费程序并只订阅了一个主题。emqx的发送的数据应该是等于received的,如果再考虑网络丢包的一些影响,也不可能差异这么大。