簡體   English   中英

Azure事件中心-順序接收事件

[英]Azure Event Hub - Receiving events Sequentially

我正在使用以下代碼從Azure Event-Hub接收事件

https://docs.microsoft.com/zh-cn/azure/event-hubs/event-hubs-dotnet-framework-getstarted-send#receive-events

我想按順序處理進入event-hub的請求 例如,某人在非常快的時間內發送了5個事件,我想完成請求1的處理,然后我要處理第二個請求。

如何依次處理進入事件中心的事件?

docs

為了使其順序,您需要選擇適當的partitionKey

如果在發布事件時未指定分區鍵,則使用循環分配。 在許多情況下,如果事件順序很重要,則使用分區鍵是一個不錯的選擇。 當您使用分區鍵時,這些分區要求在單個節點上具有可用性,並且隨着時間的流逝會發生中斷。 例如,當計算節點重新啟動並打補丁時。

在從eventhub接收的事件包中,有一個稱為sequence_number的屬性,因為此束是一個列表,您可以按sequence_number進行排序,然后處理這些事件。

事件中心使用分區來啟用事件處理的水平縮放。 您可以在創建事件中心期間從1到32指定分區數。僅保證在一個分區內而不是在所有分區之間保證消息順序。

如果需要維護順序,則只需將事件寫入特定分區,而只能從同一分區讀取。 在Azure Event Hub中,分區跨不同實例分布以實現高可用性。 這意味着分區可能會脫機進行維護,然后再聯機。 因此,如果要管理訂單,則需要寫入和讀取單個分區,並且可能需要手動管理情況,例如分區從應用程序邏輯脫機。

如果您需要管理訂單,我建議使用Azure Service Bus隊列,該訂單和可用性由服務總線自行管理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM