在昨天我們講完Azure小白如何建立Azure Resource Manager範本進行大量佈署
今天我們來聊聊Azure Event Hub如何提供可靠的巨量資料應用程式傳訊
Azure Event Hub可以接收及處理大量交易,你也可以將其設定為動態調整規模,
以在必要時處理增加的輸送量,在今天學習過程你將了解如何將Azure Event Hub
連接到應用程式並可靠地處理大量交易。
Azure Event Hub是雲端式事件處理服務,每秒可接收及處理數百萬個事件。
Azure Event Hub能作為event pipeline的大門,以接收連入的資料並加以儲存
,直到處理資源可供使用為止,將資料傳送至event pipeline的實體稱為publisher
而從Azure Event Hub讀取資料的實體稱為consumer或 subscriber。Azure Event
Hub位於這兩個實體之間,用於劃分事件資料流的生產(publisher)及取用(subscriber)
,這種去耦合有助於管理事件生產速率遠高於取用速率的案例,下圖為一範例
Event是資訊的小型封包(資料包),其中會包含通知。 事件可以單獨發行或依批次
發行,但一次發行(單獨或批次)不得超過 1 MB。
Event publishers者是可以使用 HTTPS 或進階訊息佇列通訊協定(AMQP) 1.0
傳送事件的任何應用程式或裝置,對於經常傳送資料的publishers來說,AMQP的
效能比較好。 不過其具有較高的初始工作階段額外負荷,因為必須先設定持續性
雙向通訊端與傳輸層安全性 (TLS) 或 SSL/TLS,對於間歇的publishers而言,
HTTPS 是比較好的選項。 雖然 HTTPS 對於每個要求都需要額外負荷,但是沒有
工作階段初始化的額外負荷。
Event subscribers這些應用程式會使用兩種支援的程式設計方法之一來接收和
處理來自Azure Event Hub的事件。
*EventHubReceiver - 提供有限管理選項的簡單方法。
*EventProcessorHost - 我們將在此課程模組稍後使用的有效方法。
Azure Event Hub的consumer group代表Azure Event Hub data stream的特定
檢視,透過使用個別的consumer groups,可讓多個subscriber應用程式獨立處理
event stream,而不影響其他應用程式。
Azure Event Hub有三個定價層:基本、標準與專用。 定價層的差異在於支援的
連線、可用的Consumer groups數目,以及輸送量。 使用 Azure CLI 來建立
Azure Event Hub命名空間時,如果未指定定價層,則預設會指派(標準 ,20個
Consumer groups、1000個Brokered connections)。
建立及設定新的 Azure Azure Event Hub有兩個主要步驟。 第一個步驟是定義
Azure Event Hub命名空間,第二個步驟是在該命名空間中建立Azure Event Hub。
Azure Event Hub命名空間是用於管理一或多個Azure Event Hub的包含實體。
建立Azure Event Hub命名空間通常涉及下列設定:
1.Define namespace-level settings
命名空間容量(使用[輸送量單位]設定)、定價層與效能計量等特定設定會在命名
空間層級定義,這些設定適用於該命名空間內的所有Azure Event Hub,如果你未
定義這些設定,則會使用預設值:針對容量使用 1,針對定價層使用 [標準]。
2.為命名空間選取唯一名稱
命名空間可透過此URL存取:namespace.servicebus.windows.net
3.定義下列選擇性屬性
-啟用 Kafka,此選項可讓 Kafka 應用程式將事件發佈至Azure Event Hub。
-使這個命名空間成為區域備援。 區域備援能在不同資料中心之間複寫資料,
這些資料中心具有自己的獨立電源、網路和冷卻基礎結構。
-啟用「自動擴充」和「自動擴充輸送量單位上限」,自動擴充能透過將輸送量
單位的數目增加到最大值,提供自動相應增加選項。 在傳入或傳出資料速率
超出輸送量單位目前所設定數目的情況下,這個選項有助於避免節流。
建立Azure Event Hub命名空間之後,您可以建立Azure Event Hub。 在建立新
的Azure Event Hub時,有幾個必要參數。
1.Event Hub Name:Azure Event Hub名稱在您的訂用帳戶內是唯一
-長度介於 1 到 50 個字元之間
-只包含字母、數字、句號、連字號和底線
以字母或數字為開頭和結尾
2.Partition Count:Azure Event Hub所需的分割區數目(介於2到32之間)
分割區計數應該與預期的並行取用者數目直接相關,且無法在建立中樞之後變更
分割區會分隔訊息資料流,讓取用者或接收者應用程式只需讀取資料流的特定
子集。 如果未定義,此值會預設為 4。
3.Message Retention:資料流因任何原因而必須重播時,訊息仍可供使用的
天數 (介於 1 到 7 之間)。 如果未定義,此值會預設為 7,也可以選擇性地設定
Azure Event Hub,將資料串流到 Azure Blob 儲存體或 Azure Data Lake
Store 帳戶。
若要設定應用程式將訊息傳送至事件中樞,您必須提供下列資訊,以讓應用程式
建立連線認證:
-Event Hub namespace name
-Event Hub name
-Shared access policy name
-Primary shared access key
若要設定應用程式接收來自事件中樞的訊息,請提供下列資訊,以讓應用程式
建立連線認證:
-Event Hub namespace name
-Event Hub name
-Shared access policy name
-Primary shared access key
-Storage account name
-Storage account connection string
-Storage account container name
Azure portal > Overview page for your Event Hub頁面會顯示訊息計數。
這些訊息計數代表「事件中樞」所接收和傳送的資料 (事件)。 您可以選擇用於
檢視這些事件的時幅。
手把手使用Azure CLI建立Event Hub
手把手設定應用程式以透過Azure Event Hub傳送或接收訊息
手把手使用 Azure 入口網站評估已部署Azure Event Hub的效能
Day23教學講義: