wind-c / comqtt

A lightweight, high-performance go mqtt server(v3.0|v3.1.1|v5.0) supporting distributed cluster
MIT License
869 stars 50 forks source link

跨节点数据同步消息同步丢数据,并且大概率会导致服务阻塞后续的pub无法同步到其他节点 #66

Closed chenshan911210 closed 10 months ago

chenshan911210 commented 11 months ago

我这里目前部署的是3个节点,单节点消息pub、sub没有任何问题,但是跨节点就会出现pub之后丢消息,消息丢失之后导致多借点之间数据同步阻塞后续消息无法pub同步到其他节点。 节点配置如下 节点1: image 节点2: image 节点3: image

我这里测试使用的是mqtt-stresser作为测试客户端。 测试命令为./build/mqtt-stresser-linux-amd64 -log-level=0 -broker=tcp://127.0.0.1:1887 -broker-sub=tcp://127.0.0.1:1885 -num-clients=1 -num-messages=25 其中-broker-sub 为我自己加的一个配置,专门用于测试夸节点消息同步是否可能会丢消息。 目前测试发现一般情况下-broker-sub 小于20大概率不会有问题,超过20消息必丢。 pub节点日志 image sub节点日志 image

麻烦大佬帮忙看看是否为我的配置存在问题导致的消息丢失

wind-c commented 11 months ago

目前测试发现一般情况下-broker-sub 小于20大概率不会有问题,超过20消息必丢。

这句话啥意思?

chenshan911210 commented 11 months ago

抱歉,那个地方写的有问题, 是-num-messages=这个值小于20的情况下不会丢,大于25之后是必丢

wind-c commented 11 months ago
截屏2023-08-10 12 14 19

测试client连到1885 broker,在1887的broker上订阅filter=internal/mqtt-stresser/narwaldeMacBook-Pro.local/# ,90条消息全部接到