mqtt5.8.5的报错

环境

  • EMQX 版本:5.8.5
  • 操作系统版本:Linux VM-0-8-centos 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

重现此问题的步骤

  1. 有150个mqtt线程,间隔100ms发一次消息, 共用同一个mqtt客户端
  2. mqtt订阅端,一开始还能接受消息和返回消息,但是等一会就不行了。
    报错如下:
    2025-03-24T04:12:50.634959+00:00 [warning] msg: alarm_is_activated, message: <<“connection congested: #{memory => 34856,message_queue_len => 0,pid => <<"<0.134758.0>">>,reductions => 54932358,send_pend => 448705,peername => <<"172.19.0.1:42678">>,sockname => <<"172.19.0.2:1883">>,buffer => 4096,high_msgq_watermark => 8192,high_watermark => 1048576,recbuf => 369280,sndbuf => 87040,recv_cnt => 17775,recv_oct => 23300015,send_cnt => 105988,send_oct => 12094027,username => <<”…>>, name: <<“conn_congestion/ser01_285001742789353/super01”>>
    2025-03-24T04:13:12.682258+00:00 [warning] clientid: ser01_285001742789353, msg: socket_error, peername: 172.19.0.1:42678, username: super01, reason: timeout
    2025-03-24T04:13:12.682717+00:00 [warning] msg: alarm_is_deactivated, name: <<“conn_congestion/ser01_285001742789353/super01”>>
    Config override: log.file.default is enabled
    2025-03-24T04:23:11.982948+00:00 [warning] msg: busy_dist_port, portinfo: [{port,#Port<0.7>},{name,“tcp_inet”},{links,[<0.2225.0>,<0.2053.0>]},{id,56},{connected,<0.2225.0>},{input,3736679},{output,119},{os_pid,undefined}], procinfo: [{pid,<0.314446.0>}]
    2025-03-24T04:31:31.332928+00:00 [warning] msg: alarm_is_activated, message: <<“connection congested: #{memory => 68360,message_queue_len => 0,pid => <<"<0.264380.0>">>,reductions => 635646659,send_pend => 1005586,peername => <<"172.19.0.1:43608">>,sockname => <<"172.19.0.2:1883">>,buffer => 4096,high_msgq_watermark => 8192,high_watermark => 1048576,recbuf => 569584,sndbuf => 87040,recv_cnt => 61748,recv_oct => 82161141,send_cnt => 93243,send_oct => 17439640,username => <”…>>, name: <<“conn_congestion/ser01_285001742789937/super01”>>
    2025-03-24T04:31:47.313677+00:00 [warning] clientid: ser01_285001742789937, msg: socket_error, peername: 172.19.0.1:43608, username: super01, reason: timeout
    2025-03-24T04:31:47.314140+00:00 [warning] msg: alarm_is_deactivated, name: <<“conn_congestion/ser01_285001742789937/super01”>>

预期行为

实际行为

这个客户端io受不了了,消息全列存在TCP buffer 了,超了后就会断开,重连。常见使用问题解答 | EMQX文档

好的,谢谢回复,我看看这个共享订阅逻辑