簡體   English   中英

mosquitto:代理停止向某些客戶端發布但訂閱正常

[英]mosquitto : broker stop publish to some clients but subscription ok

上下文:

  1. 在私有雲上運行的 mosquitto broker 1.5.7:

Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux

mosquitto.conf 的摘錄:

allow_anonymous false
password_file /etc/mosquitto/passwd
log_type all
  1. X 客戶端(nodeJS mqtt 包)SUB 同主題 xxx

提取他們的 nodeJS 配置:

reconnectPeriod: 30000  (ms)
keepalive: 300  (sec) 
qos: 2 
clean = false

(節點mqtt模塊版本:3.0.0)

  1. QoS2 中關於主題 xxx 的另一個客戶端 PUB

問題:

在最初的幾個小時內,關於主題 xxx 的 PUB/SUB 運行良好,但客戶端 (SUB) 突然停止接收消息。 客戶端 (SUB) 連接良好並訂閱了代理。

當我檢查代理#$SYS 時,我可以看到:

  • "$SYS/broker/clients/active" 好的
  • "$SYS/broker/clients/connected" OK(相同數量的活動)
  • "$SYS/broker/subscriptions/count/" 確定

當我查看“mosquitto 日志”時,我只能看到代理 PUBLISH 消息發給我的 7 個 SUB 客戶中的 3 個……所以可以理解,我的其他 4 個客戶從未收到該消息……

我該怎么做才能解決這個奇怪的問題?

感謝您的幫助。

我終於找到了使我的架構工作的解決方案:我將所有設備的 Qos SUB 切換到 Qos1(而不是 Qos2)。

我的結論是,如果同一主題上有多個訂閱者(在我的情況下為 7 個),則代理無法很好地管理 SUB 上的 Qos2。

在這種情況下:將 Qos SUB 轉為 Qos 1,它工作正常!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM