簡體   English   中英

Azure事件中心 - 同一事件中心中的多個事件類型

[英]Azure Event Hub - multiple event types in same Event Hub

我已經設置了Azure Event Hub 2個發布者

  1. 發布者1(帶發送政策)

  2. 發布者2(帶發送政策)

發布者1將發送事件1,發布者2將發送事件2.事件1和事件2都是不同的格式。

問題1 :這意味着我們在EH中有不同的信息 - 這種方法的權衡是什么? 我應該創建2個EH(一個用於Publisher 1,另一個用於Publisher 2)? 什么是最佳實踐和設計理念?

如果我采用上述方法,我將不得不設置一個帶有Listen策略的Consumer來查找這些事件並解析/轉換這些事件並對這些事件進行反序列化。

問題2 :我是否需要2個消費者(消費者1和消費者2)閱讀針對他們的消息? (消費者1只讀事件1而消費者2只讀事件2)?

場景1:多事件類型的一個事件中心

在這種情況下,您在發送和處理消息時有多個選項:

  1. 只需向活動中心發送消息即可。 編寫一個消費過程來讀取消息,並根據類型處理不同的消息。
  2. 只需向活動中心發送消息即可。 創建不同的使用者組,每種消息類型一個。 有2個進程可以讀取自己的使用者組並跳過他們沒有資格處理的消息。 (每個消費者組基本上讀取相同的數據,但它們可以位於數據流中的不同位置)。 請參閱Azure事件中心和多個使用者組
  3. 將消息發送到指定的分區。 例如,將類型A的消息發送到分區1,將類型B的消息發送到分區2.但是這會影響事件中心的可伸縮性。 為每個(一組)分區創建專用進程。 然后,每個進程只處理相同類型的消息。 請參閱https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-programming-guide#partition-keyhttps://docs.microsoft.com/en-us/azure/event -hubs /事件集線器編程導#創建-一個分區發送方

場景2:每個事件類型的事件中心

這個很簡單,只需創建2個事件中心和2個消耗過程。 但是你必須管理2個事件中心,並且考慮到事件中心的能力,它可能有點過分。

我的建議

這取決於數據量,但根據我的經驗,我會將所有消息發送到一個事件中心,並讓一個進程讀取消息並使用一些c#代碼基於消息類型執行操作。

暫無
暫無

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

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