2

利用微軟新的微服務框架,可以構建有狀態的服務。是否有可能使用此類服務​​來接收來自不同設備的數據,而不是使用事件中心?例如。我的設備會將數據推送到無狀態Web api服務(可能在近乎實時的情況下使用SignalR),並且api服務將數據轉發到可靠隊列中的可靠狀態服務。或者是一個可靠的演員。可靠的有狀態服務與事件中心

這些服務是可伸縮的,爲什麼我應該使用Event Hub來達到這個目的?在沒有Event Hub的情況下,是否有任何性能或延遲問題直接將數據發送到服務?

回答

5

是的理論和實踐中,您可以建立自己的無狀態服務,這是高度可擴展的,並接受盡可能多的負載,只要你想。在大多數情況下,它是可以接受的。

就金錢而言,與託管Event Hub訂閱相比,託管只接收數據並轉發給Actor的服務實例將花費更多。您必須爲每個Service Fabric實例付費,並且實際上編寫業務邏輯來處理可伸縮性,即使SF使它變得微不足道,仍然存在空間不足和錯誤。

事件中心旨在強調在令人難以置信的大規模大多數項目永遠不會達到。它們針對低延遲進行了優化,可輕鬆處理每秒數百萬次的請求。如果這不是你的情況,不要打擾。

您只需在架構中運行事件中心事件偵聽器,因爲它充當消息流的可靠「前門」,並使服務器架構更簡單,更可靠。這主要是一個架構決定,取決於項目。

+0

謝謝!無狀態的後端api服務已經作爲我對應用程序的入口。好的,我正在嘗試爲少數設備使用api服務。但是我明白你的觀點,當我有更多的設備時,使用消息系統可能更爲明智。我想知道與作爲設備入口點的自己的服務相比的性能。我試圖避免使用太多的雲服務,因爲如果客戶想要它,最終轉移到私有云。 – CPA