Activemq
ActiveMQ Artemis 可以用作“協議適配器”嗎?
我們有一個物聯網基礎設施,設備通過 MQTT 進行通信。但是,現在我們還要求這些設備必須將感測器數據發佈到一個隊列中,以便雲處理對其進行評估和儲存。
由於 MQTT 不支持拉取模型,我目前正在研究可能使用的排隊服務。ActiveMQ Artemis 引起了我的注意,因為它支持各種協議,其中包括 MQTT 和 REST 介面。
不過,我在文件中無法清楚地看到,Artemis 是否只能充當多個消息隊列的單個代理,或者它是否實際上可以用於在它們之間進行轉換。到目前為止的計劃是讓一個 MQTT 客戶端訂閱“處理”主題,該主題將收集發布給它的所有消息並將它們推入輪詢隊列,工作人員會來收集它們。似乎 Artemis 有可能在不執行其他服務的情況下做到這一點,但我完全不確定我是否正確解釋了文件。
所以要問一個直截了當的問題:我可以安裝 Artemis,以便我可以向它發布 MQTT 消息,然後從隊列中輪詢它們,例如使用 REST 介面嗎?
一般來說,消息代理用於應用程序集成。因此,您通常可以使用一種協議發送消息並使用另一種協議使用它們。ActiveMQ Artemis 就是這種情況。您當然可以使用 MQTT 發布消息,然後使用 REST 介面使用它。
也就是說,我建議使用 STOMP 協議而不是 REST 介面。STOMP 協議是標準化的,而 REST 介面是 ActiveMQ Artemis 獨有的。STOMP 非常簡單,可以在大多數(如果不是全部)使用 REST 消息傳遞客戶端的地方使用。許多經紀人都實施了 STOMP,因此如果您需要遷移到不同的經紀人,工作會變得更加容易。