本文介紹通過物聯網平臺配置的AMQP服務端訂閱消息無法接收的常見問題及解決方法。
配置AMQP服務端訂閱后,為什么在線消費端收不到消息?
問題描述
AMQP服務端訂閱完成后,消費組對應在線AMQP客戶端沒有接收到消息。
可能原因
當前設備通信的消息類型,不在AMQP服務端訂閱的消息類型內。
實時消息推送限流了,超過限流的消息不能實時消費,物聯網平臺會重試推送。
AMQP客戶端的一個連接限流1,000 TPS,消息轉發TPS限流由實例下已購買規格決定。
消息消費慢,導致消息不能實時消費,而進入堆積隊列。
消費客戶端恢復穩定消費能力后,物聯網平臺會重試推送堆積消息。
如果客戶端對重試推送的消息消費失敗,可能導致堆積隊列阻塞。按大約一分鐘間隔,物聯網平臺會向客戶端再次重試推送。
解決方法
在物聯網平臺控制臺對應實例下,進入 頁面,確認已創建的產品訂閱中已添加推送消息類型。
具體操作,請參見配置AMQP服務端訂閱。
在服務端訂閱頁面,單擊在消費組詳情頁面,查看實時消息消費速率。
您可根據服務端訂閱使用限制,通過增加AMQP客戶端連接數擴容、增加AMQP客戶端啟動數擴容或升配實例下消息轉發TPS規格,提高消息消費速率。
物聯網平臺提供的AMQP SDK中可通過connectionCount配置連接數,最大為128。
一個消費組可開啟多個AMQP消費客戶端,最大為64。
實例升配方法,請參見實例升配。
為什么設備上報消息推送不成功?
問題描述
AMQP服務端訂閱的消息類型為設備上報消息,設備上報的物模型數據沒有推送到AMQP客戶端。
可能原因
設備上報的物模型數據,在產品側沒有定義對應物模型功能。
設備上報的數據格式,不符合Alink協議標準數據格式,無法推送消息到消費組的AMQP客戶端。
設備上報數據中的物模型功能標識符,與定義的功能標識符不一致。
解決方法
在物聯網平臺控制臺對應實例下,進入產品詳情頁面的功能定義頁簽,查看是否定義物模型功能。
如果沒有定義物模型功能,按照業務需求添加物模型功能。具體操作,請參見添加物模型。
如果已定義物模型功能,確保設備端上報物模型數據的功能標識符正確,且數據格式符合Alink協議標準數據格式,然后重新上報物模型數據。
Alink協議格式說明,請參見設備屬性、事件、服務。
設備上報消息成功,業務側消費端仍然沒有收到消息,為什么?
問題描述
設備上報數據后,從物聯網平臺控制臺對應實例下的 的云端運行日志頁簽確認設備到云消息成功,但服務端訂閱消息推送失敗了。
可能原因
訂閱消費組沒有開啟的AMQP消費客戶端接入物聯網平臺,或已接入的AMQP客戶端已離線。
創建產品時,定義校驗類型為免校驗,設備上報數據沒通過校驗直接上報到物聯網平臺了。設備上報數據若不符合Alink協議標準數據格式,無法被推送到消費組的AMQP客戶端。
解決方法
為AMQP服務端訂閱產品關聯的消費組,開啟AMQP消費客戶端連接物聯網平臺,并確保業務運行時,AMQP客戶端保持在線。
AMQP客戶端離線可能原因,請參見AMQP客戶端自動離線,為什么?。AMQP客戶端接入方法,請參見AMQP客戶端接入說明。
確保設備端上報數據格式符合Alink協議標準數據格式,然后重新上報物模型數據。
Alink協議格式說明,請參見設備屬性、事件、服務。
相關文檔
什么是服務端訂閱:了解AMQP服務端訂閱應用場景和使用優勢。
物模型支持的數據類型:了解設備物模型支持的數據格式。
校驗物模型數據:了解設備物模型數據校驗的邏輯。
設備使用物模型通信:了解設備物模型通信的完整流程。