使用 Azure CLI 建立事件中樞

已完成

您的小組已決定要利用 Azure 事件中樞的功能,來管理及處理進入系統中日益增加的交易量。

事件中樞是 Azure 資源,因此您的第一個步驟是在 Azure 中建立新的中樞,並加以設定使其符合您應用程式的特定需求。

什麼是 Azure 事件中樞?

Azure 事件中樞是雲端式事件處理服務,每秒可接收及處理數百萬個事件。 事件中樞能作為事件管線的大門,以接收輸入的資料並加以儲存,直到處理資源可供使用為止。

將資料傳送至事件中樞的實體稱為「發行者」,而從事件中樞讀取資料的實體稱為「取用者」或「訂閱者」。 事件中樞位於發行者和訂閱者之間,用於劃分事件資料流的生產 (從發行者) 及取用 (到訂閱者)。 這項分離有助於管理事件生產速率遠高於取用速率的案例。 下圖顯示此事件中樞的角色。

此圖顯示放置在四個發行者與兩個訂閱者之間的 Azure 事件中樞。事件中樞會從發行者接收多個事件、將事件序列化成資料流,並將資料流提供給訂閱者。

事件

事件是資訊的小型封包 (資料包),其中會包含通知。 事件可以單獨發佈或依批次發佈,但一次發佈 (單獨或批次) 不得超過 1 MB。

發行者和訂閱者

事件發行者是可以使用 HTTPS、進階訊息佇列通訊協定 (AMQP) 1.0 或 Apache Kafka 來傳送事件的任何應用程式或裝置。

  • 對於經常傳送資料的發行者來說,AMQP 的效能比較好。 不過,其具有較高的初始工作階段額外負荷,因為必須先設定持續性雙向通訊端與傳輸層安全性 (TLS) 或 SSL/TLS。
  • 對於間歇的發佈而言,HTTPS 是比較好的選項。 雖然 HTTPS 對於每個要求都需要更多額外負荷,但是沒有工作階段初始化的額外負荷。
  • 事件中樞提供與 Apache Kafka 生產者和取用者 API 相容的端點,可供大部分現有的 Apache Kafka 用戶端應用程式用來作為替代方案,以便執行您自己的 Apache Kafka 叢集。 事件中樞支援 1.0 版和更新版本的 Apache Kafka 產生者和取用者 API 用戶端。 如需詳細資訊,請參閱 適用於 Apache Kafka 的事件中樞

事件訂閱者是使用兩種支援的程式設計方法之一以接收和處理來自事件中樞事件的應用程式。

  • EventHubReceiver - 提供有限管理選項的簡單方法。
  • EventProcessorHost - 我們將在此課程模組稍後使用的有效方法。

取用者群組

事件中樞的取用者群組代表事件中樞資料流的特定檢視。 當您使用個別的取用者群組時,多個訂閱者應用程式可獨立處理事件資料流,而不影響其他應用程式。 不過,使用多個取用者群組並非必要需求,且對於許多應用程式而言,單一預設取用者群組便已足夠。

定價

Azure 事件中樞有四個定價層:基本、標準、進階和專用。 定價層的差異在於支援的連線、可用的取用者群組數目,以及輸送量。 使用 Azure CLI 來建立事件中樞命名空間時,如果未指定定價層,則預設會指派 [標準] (20 個取用者群組、1000 個代理連線)。 如需這些層之間的主要差異,請參閱 Azure 事件中樞 - 定價

建立和設定事件中樞

建立新的事件中樞有兩個主要步驟。 第一個步驟是定義事件中樞「命名空間」。 第二個步驟是在該命名空間中建立事件中樞。

定義事件中樞命名空間

事件中樞命名空間是用於管理一或多個事件中樞的容器。 建立事件中樞命名空間通常涉及下列設定:

定義命名空間層級設定

命名空間容量 (在標準層使用 [輸送量單位] 設定)、定價層與效能計量會在命名空間層級定義。 這些設定適用於該命名空間內的所有事件中樞。 如果您未定義這些設定,則會使用預設值:1 代表容量,而 Standard 代表定價層。

請記住下列層面:

  • 您必須根據自身預期的 Azure 預算來平衡您的設定。

  • 您可以考慮為不同的輸送量需求設定不同的事件中樞。 例如,如果您有銷售資料應用程式,且打算使用兩個事件中樞,則合理的做法便是針對每個中樞使用個別的命名空間。

    您會針對即時銷售資料的高輸送量集合設定一個命名空間,然後針對不常發生的事件記錄檔集合設定另一個命名空間。 如此一來,您只需要設定 (並支付) 即時銷售資料中樞上的高輸送量容量。

    1. 為命名空間選取唯一名稱。 命名空間可透過此 URL 存取:namespace.servicebus.windows.net

    2. 定義下列選用屬性:

      • 使這個命名空間區域成為備援。 區域備援能在不同資料中心之間複寫資料,而這些資料中心具有自己的獨立電源、網路和冷卻基礎結構。

      • 啟用自動擴大輸送量單位 (標準層)。 自動擴充能透過將輸送量單位的數目增加到最大值,以提供自動擴大選項。 在傳入或傳出資料速率超出輸送量單位目前所設定數目的情況下,這個選項有助於避免節流。

用於建立事件中樞命名空間的 Azure CLI 命令

若要建立新的事件中樞命名空間,請使用 az eventhubs namespace 命令。 以下簡述我們將在練習中使用的命令。

Command 描述
create 建立事件中樞命名空間。
authorization-rule 相同命名空間內的所有事件中樞都會共用一般連線認證。 您在設定使用事件中樞傳送及接收訊息的應用程式時,會需要這些認證。 此命令會傳回您事件中樞命名空間的連接字串。

設定新的事件中樞

建立事件中樞命名空間之後,您可以建立事件中樞。 在建立事件中樞時,有數個必要參數。

建立事件中樞所需的參數如下:

  • 事件中樞名稱 - 事件中樞名稱在您的訂用帳戶內是唯一的,而且:
    • 介於 1 到 50 個字元之間。
    • 只包含字母、數字、句號、連字號和底線。
    • 以字母或數字為開頭和結尾。
  • 分割區計數 - 事件中樞所需的分割區數目 (在標準層,則介於 2 到 32 之間)。 分割區計數應該與預期的同時取用者數目直接相關,且無法在建立中樞之後變更。 分割區會分隔訊息串流,讓取用者或接收者應用程式只需讀取資料流的特定子集。 如果未定義,此值會預設為 4
  • 訊息保留 - 資料流因任何原因而必須重播時,訊息仍可供使用的天數 (在標準層,範圍為 1 到 7)。 如果未定義,此值會預設為 7

您也可以選擇性地設定事件中樞,將資料串流到 Azure Blob 儲存體或 Azure Data Lake Storage。

用於建立事件中樞的 Azure CLI 命令

若要使用 Azure CLI 建立新的事件中樞,請執行 az eventhubs eventhub 命令集。 以下簡述我們將在練習中使用的命令。

Command 描述
create 在指定的命名空間中建立事件中樞。
show 顯示您事件中樞的詳細資料。

注意

如需事件中樞的不同層級配額和限制,請參閱 Azure 事件中樞配額和限制

摘要

若要部署 Azure 事件中樞,您必須設定事件中樞命名空間,然後設定事件中樞本身。 在下一個單元中,您將詳細了解建立新命名空間與事件中樞的各步驟。