一个生产客户端 连续发送 1000条 body 差不多 3MB 的消息,
消费者 mqtt 客户端消费大的消息时 客户端总是断开链接问题.因为链接断开,消息重新开始消费,导致以前的消息丢失.
消费一段时间以后 会出现 socket close情况
为什么消费大的消息体时 服务端链接会主动断开.
一个生产客户端 连续发送 1000条 body 差不多 3MB 的消息,
消费者 mqtt 客户端消费大的消息时 客户端总是断开链接问题.因为链接断开,消息重新开始消费,导致以前的消息丢失.
消费一段时间以后 会出现 socket close情况
为什么消费大的消息体时 服务端链接会主动断开.
客户端收太慢了,全堵在 tcp buffer,超了,就会断开。
你得收快一点。
把客户端写成异步的,或者用共享订阅:
EMQX 或 MQTT 协议并没有直接对每个客户端的消息接收速率进行严格限制。但当接收的消息过多,客户端无法及时处理时,可能会导致消息堆积过多并最终丢失。为了确保系统稳定性和消息传输的可靠性,建议每个订阅客户端的消息接收速率不超过 1500 消息/秒(按每条消息 1KB 计算)。
如果消息接收速率超过此建议,可以使用共享订阅来添加多个订阅客户端,从而分散负载,降低单个订阅客户端的消息接收速率。
现在测试代码 客户端 什么逻辑都没有做 直接PUBACK 完成的
客户端仍然会断开链接.
那换个高性性能的mqtt客户端,要是还是满足不了你的要求,就用共享订阅
怎么定义高性能的客户端,硬件配置要很高.我软件是 使用netty 实现的mqtt客户端.刚开始处理10条左右就会断开,然后重连,消费,继续断开链接
订阅客户端的消息接收速率不超过 1500 消息/秒(按每条消息 1KB 计算)
如果消息大的话 速率 也会随之降低吗?
具体能处理多少个 多大的消息 怎么定位呢?
业务一点一点压测出来吗?
这就很不正常,目前我还没碰到过性能这么差的,是不是哪里设置错了
是的
这个最直接可靠,你也可以先去官网找找5.x的测试报告
那个参数设置会引起这个问题?消费缓慢断开连接?我是使用netty实现的mqtt 客户端连接
我没用过,也不清楚,也就不负责怀疑下。你可以看看相关的文档和资料
好的 感谢 感谢