![](/img/trans.png)
[英]Trade offs and best practices building microservices with Azure Service Fabric
[英]Service Fabric, What Microservices is best intended for continuous polling from Service Bus
我是Service Fabric的新手。
我們在Azure Service Bus上有一個隊列。 我想連續從Service Fabric中的隊列中提取消息,處理消息(執行一些業務邏輯)並將某些數據保存在DB中,然后從隊列中刪除消息。
微服務應每隔幾秒鍾檢查一次隊列,以監視是否有新消息。
我的問題是, 將提取數據,處理一些業務邏輯然后保存到數據庫的預期微服務是什么? 是無國籍服務還是可靠演員
(編輯:解釋錯誤的問題較早)
我會說,選擇哪種型號是個人喜好問題。
您可以在所有節點上運行無狀態服務,以接收消息並在工作線程上對其進行處理。
由於單入口模型(限制多線程選項),Actor不能單手處理大量消息。 但是演員可以有很多。 您可以讓許多Actor收聽消息。 您需要確保那些演員成為並保持活着。
原始答案:
這個nuget包可以這樣做: https ://www.nuget.org/packages/ServiceFabric.ServiceBus.Services它支持隊列,主題,批處理和會話。
您的問題空間似乎適合有狀態或無狀態模型。 根據您是否需要維護狀態,哪種都可以。
作為一般指導,在以下情況下,請考慮使用參與者模式來為您的問題或場景建模:
參考: https : //docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-actors-introduction
您可以使用任何一個。 無狀態或全狀態。 是應該沒關系的。 我認為您可以執行以下操作:
一旦有了這些,就可以在服務代碼中使用StatefulService的“ CreateServiceReplicaListeners”替代或StatelessService的“ CreateServiceInstanceListeners”。
protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners() { return new[] { new ServiceReplicaListener(context => new ServiceBusCommunicationListener(context)) }; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.