使用 Azure CLI 建立事件中樞

已完成

您的小組決定使用Azure 事件中樞功能來管理及處理透過系統增加的交易量。

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

什麼是 Azure 事件中樞?

Azure 事件中樞是雲端式事件處理服務,每秒可接收及處理數百萬個事件。 事件中樞可作為事件管線的前門,它會接收傳入的資料,並儲存此資料,直到處理資源可用為止。

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

An illustration showing an Azure event hub placed between four publishers and two subscribers. The event hub receives multiple events from the publishers, serializes the events into data streams, and makes the data streams available to subscribers.

事件

事件是資訊的小型封包 (資料包),其中會包含通知。 事件可以單獨發佈或依批次發佈,但一次發佈 (單獨或批次) 不得超過 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 事件中樞,您必須設定事件中樞命名空間,然後設定事件中樞本身。 在下一個單元中,您會完成建立新命名空間和事件中樞的詳細步驟。