2017-06-17 67 views
0

我已經實現了Kakfa接收來自IoT網關的數據(在Linux上運行的小型系統 - 它連接其他設備併發送命令),其中在物聯網網關中寫入日誌,設備命令等數據。這個平臺也將用於分析等。Kakfa發佈物聯網網關數據

現在,我想從我的集中式平臺(服務器 - 在雲端 - 數據中心)發送命令到IoT網關,我可以使用相同的Kakfa連接還是需要切換到其他協議?

回答

0

卡夫卡作爲攝入系統非常棒,因此它非常適合像您的遙測這樣的物聯網場景。 當您需要發送命令來控制設備時,您可以從發佈/訂閱模式切換到請求/響應模式,雲平臺會發送命令並等待設備的回覆(接受,執行,接受命令)。 ..)。 即使在這種情況下,異步需求和時間解耦也需要消息基礎架構,因爲當系統發送命令時,物聯網網關可能不在線。同時你不希望在很多時間後(當設備重新聯機時)執行一個陳舊的命令,所以TTL(時間離開)是一個很好的消息特性。 使用Kafka,你有一個事件日誌,你可以在其中存儲很長時間的所有消息並重新讀取流:這些功能對於遙測非常有用,可能不適用於控制命令&。在這種情況下,像ActiveMQ Artemis這樣的消息傳遞代理系統可能是正確的選擇,例如使用發送命令的隊列和用於回覆的隊列。該命令在使用或TTL到期時將被刪除。當然,使用不同主題的Kafka仍然是可能的,但消費者需要處理消耗的命令,而不必重新讀取流,避免執行兩次或更多命令。只是我的2美分...

+0

謝謝你的詳細洞察力。,分析了幾個框架後,我看着EMQTT。它會適合嗎? – syv

+0

即使MQTT並不完全支持開箱即用的請求/回覆,因爲它實現了發佈/訂閱模式。當然,您可以對此執行請求/回覆(對於命令),並以特定方式定義主題。您可以從這篇文章中獲得更多見解:https://dzone.com/articles/strengths-and-weaknesses-of-iot-communication-patterns – ppatierno

+0

我有兩種溝通方式1.通過互聯網;移動 - >雲服務器 - >物聯網網關2.在局域網移動 - >局域網(路由器) - >物聯網網關。你能爲這種情況建議好的選擇嗎? – syv