2017-05-23 174 views
1

我想獲得一些建議,用於在Azure中設計IoT消息的路由。Azure服務結構路由

我有以下情況: Senator以Google Protobuf格式向Azure IoT Hub發送消息。根據消息的類型,我想將消息路由到服務結構中的不同應用程序。

我目前的方法是使用服務結構應用程序接收來自IoT中心的所有消息,解析protobuf消息,根據消息的類型(protobuf內的屬性)將消息發送到特定於類型的Azure事件中心。現在,應用程序從其「自己的」事件集線器中獲取消息並處理消息。

我不確定這是否是最好的方法。我不喜歡這樣的事實,即爲每種消息類型設置一個事件中心。服務總線主題可能不是一種選擇,因爲我有很多消息(~30k每秒)。 我是否真的需要一個事件中心,來解耦這個過程,或者說它是否合理,將消息從「路由應用程序」直接發送到不同的「類型應用程序」?

您認爲如何?

問候, 馬庫斯

+0

做你看Azure的功能呢?也許你可以一次接收和處理消息。 (取決於你如何處理他們當然) – LoekD

+0

你能否詳細說明你爲什麼不喜歡你的方法?看起來相當標準給我。 – Mikhail

+0

Azure功能,並沒有像推薦的那樣工作(性能問題)。也許它現在更好... 我不喜歡這個事實,有這麼多的事件中心(每種類型的消息)。因此,對少數類型感興趣的服務必須連接並從少數事件中心接收。一個pub/sub(例如一個服務總線)聽起來對我更好。 – mananana

回答

1

如果你真的需要高性能,你應該看看物聯網樞紐和事件中心。 Azure事件中心是一個高度可擴展的數據流平臺和事件攝取服務,能夠接收和處理每秒百萬事件。事件中心可以處理和存儲由分佈式軟件和設備產生的事件,數據或遙測。發送到事件中心的數據可以使用任何實時分析提供程序或批處理/存儲適配器進行轉換和存儲。

另一方面,如果您每秒只需要30k條消息,則可以使用Premium Messaging

Comparison of Azure IoT Hub and Azure Event Hubs

Premium Messaging: How fast is it?

What is Event Hubs?

+0

高級消息傳遞也有一個溢價;-) – mananana

+0

我同意你的觀點,它並不便宜,但在包括你的場景在內的很多情況下都是很好的解決方案。 –