中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

EMQ X MQTT 5.0服務器的保留消息與消息過期間隔怎么實現

發布時間:2021-12-07 09:13:58 來源:億速云 閱讀:229 作者:iii 欄目:互聯網科技

本篇內容介紹了“EMQ X  MQTT 5.0服務器的保留消息與消息過期間隔怎么實現”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

保留消息

服務端收到 Retain 標志為 1 的 PUBLISH 報文時,會將該報文視為保留消息,除了被正常轉發以外,保留消息會被存儲在服務端,每個主題下只能存在一份保留消息,因此如果已經存在相同主題的保留消息,則該保留消息被替換。

當客戶端建立訂閱時,如果服務端存在主題匹配的保留消息,則這些保留消息將被立即發送給該客戶端。借助保留消息,新的訂閱者能夠立即獲取最近的狀態,而不需要等待無法預期的時間,這在很多場景下非常重要的。

保留消息雖然存儲在服務端中,但它并不屬于會話的一部分。也就是說,即便發布這個保留消息的會話終結,保留消息也不會被刪除。刪除保留消息只有兩種方式:

  1. 客戶端往某個主題發送一個 Payload 為空的保留消息,服務端就會刪除這個主題下的保留消息。

  2. 如果包含保留消息的 PUBLISH 報文設置了消息過期間隔屬性,那么保留消息在服務端存儲超過過期時間后就會被刪除。

消息過期間隔

PUBLISH 報文可以設置消息過期間隔這一屬性,消息過期間隔是一個四字節的整數,表示應用消息的生命周期,單位是秒。

如果 PUBLISH 報文不設置消息過期間隔,那么應用消息不會過期。

如果 PUBLISH 報文設置了消息過期間隔,并且消息過期將已經過期,服務端還沒開始向匹配的訂閱者交付該消息,那么服務端必須刪除該消息。

EMQ X MQTT 服務器的保留消息

EMQ X MQTT Broker 的保留消息功能是由 emqx_retainer 插件實現,該插件默認開啟,通過修改 emqx_retainer 插件的配置,可以調整 EMQ X Broker 儲存保留消息的位置,限制接收保留消息數量和 Payload 最大長度,以及調整保留消息的過期時間。

emqx_retainer 插件默認開啟,插件的配置路徑為 etc/plugins/emqx_retainer.conf

  • retainer.storage_type

    保留消息的儲存位置,EMQ X Broker 可以選擇將保留消息僅儲存在內存中,僅儲存在硬盤中,或是同時儲存在內存和硬盤中,可以由用戶的業務特點靈活決定。

    例如,想要收集電表讀數的用戶可能會決定使用 QoS 等級 1 的消息,因為他們不能接受數據在網絡傳輸途中丟失,但是,他們可能認為客戶端和服務端的數據可以存儲在內存(易失性存儲器)中,因為電力供應系統是非常可靠的,不會有太大的數據丟失風險。

    與之相反,停車計費支付應用的提供商可能決定任何情況下都不能讓數據支付消息丟失,因此他們要求在通過網絡傳輸之前將所有的數據寫入到硬盤中(非易失性存儲器)。

  • retainer.max_retained_messages、retainer.max_payload_size

    retainer.max_retained_messages 規定了 EMQ X Broker 可以儲存的保留消息的最大數量,0 表示沒有限制。保留消息數量超出最大值限制后,可以替換已存在的保留消息,但不能為新的主題儲存保留消息。

    retainer.max_payload_size 規定了 EMQ X Broker 可以接收的保留消息的最大 Payload 值。Payload 大小超出最大值后 EMQ X 消息服務器會把收到的保留消息作為普通消息處理,不再儲存此消息。

    這兩項配置規定了 EMQ X Broker 可以接收與儲存的保留消息的上限,保證了 EMQ X Broker 不會占用過多的資源來儲存和處理保留消息。

  • retainer.expiry_interval

    保留消息的過期時間,0 表示永不過期。如果 PUBLISH 報文中設置了消息過期間隔,那么以 PUBLISH 報文中的消息過期間隔為準。

    當保留消息的過期后,EMQ X Broker 會刪除掉此消息。

“EMQ X  MQTT 5.0服務器的保留消息與消息過期間隔怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凭祥市| 万宁市| 都安| 潍坊市| 额敏县| 金沙县| 阿瓦提县| 龙岩市| 兴安盟| 白水县| 商丘市| 北票市| 张家界市| 吉安县| 广平县| 仙居县| 留坝县| 舟山市| 筠连县| 玉溪市| 黔南| 台东市| 丹江口市| 丹寨县| 平昌县| 清远市| 云梦县| 浙江省| 阿拉尔市| 库车县| 广元市| 安化县| 靖宇县| 密云县| 长沙市| 余干县| 阜新| 双鸭山市| 峨边| 呼和浩特市| 安义县|