事件中樞常見問題

一般

什麼是 Azure 事件中樞 命名空間?

命名空間是事件中樞或 Kafka 主題的範圍容器。 它為您提供唯 一的 FQDN。 命名空間可作為可容納多個事件中樞或 Kafka 主題的應用程式容器。

部署后是否可以變更定價層?

否。 部署之後,就不可能將標準層變更為進階層,而不需部署新的資源。

何時要建立新的命名空間與使用現有的命名空間?

容量配置輸送量單位(TU)或 處理單位(PUS)會在命名空間層級計費。 命名空間也會與區域相關聯。

在下列其中一個案例中,您可能會想要建立新的命名空間,而不是使用現有的命名空間:

  • 您需要與新區域相關聯的事件中樞。
  • 您需要與不同訂用帳戶相關聯的事件中樞。
  • 您需要具有不同容量配置的事件中樞(也就是說,具有新增事件中樞的命名空間容量需求會超過 40 個 TU 閾值,而且您不想前往專用叢集)。

事件中樞基本層和標準層之間的差異為何?

Azure 事件中樞的標準層提供基本層中可用功能以外的功能。 標準隨附下列功能:

如需定價層的詳細資訊,包括事件中樞專用,請參閱事件中 樞定價詳細數據

Azure 事件中樞在哪裡?

Azure 事件中樞 適用於所有支援的 Azure 區域。 如需清單,請流覽 Azure 區域 頁面。

是否可以使用單一進階消息佇列通訊協定 (AMQP) 連線從多個事件中樞傳送和接收?

是,只要所有事件中樞都位於相同的命名空間中。

事件的最大保留期間為何?

事件中樞標準層目前支援7天的最大保留期間,而針對進階和專用層,此限制為90天。 事件中樞不是作為永久數據存放區。 大於 24 小時的保留期間適用於將事件串流重新執行至相同系統的案例。 例如,若要對現有數據定型或驗證新的機器學習模型。 如果您需要超過七天的訊息保留期,請在事件中樞上啟用事件中樞擷取會將數據從事件中樞提取到您選擇的 儲存體 帳戶或 Azure Data Lake Service 帳戶。 啟用擷取會根據您的購買輸送量單位產生費用。

您可以在記憶體帳戶上設定所擷取數據的保留期間。 Azure 儲存體的生命週期管理功能提供豐富的規則型原則,適用於一般用途 v2 和 Blob 記憶體帳戶。 使用原則將資料轉換為適當的存取層,或在資料生命週期結束時到期。 如需詳細資訊,請參閱 管理 Azure Blob 記憶體生命週期

如何? 監視我的事件中樞?

事件中樞會發出詳盡的計量,以提供資源的狀態給 Azure 監視器。 也可讓您評定事件中樞服務的整體健康情況,不僅是在命名空間層級,也包含實體層級。 瞭解 Azure 事件中樞 所提供的監視功能。

Azure 事件中樞 儲存數據的位置?

Azure 事件中樞標準、進階和專用層會在您建立事件中樞名稱空間時選取的區域儲存和處理發行的數據。 根據預設,客戶數據會保留在該區域內。 針對 Azure 事件中樞 命名空間設定異地災害復原時,元數據會複製到您選取的次要區域。 因此,此服務會自動滿足區域數據落地需求,包括信任中心中指定的區域數據落地需求。

我需要在防火牆上開啟哪些埠?

您可以使用下列通訊協定搭配 Azure 事件中樞 來傳送和接收事件:

  • 進階消息佇列通訊協定 1.0 (AMQP)
  • 具有傳輸層安全性的超文字傳輸通訊協定 1.1 (HTTPS)
  • Apache Kafka

請參閱下表,以瞭解您需要開啟的輸出埠,才能使用這些通訊協定來與 Azure 事件中樞 通訊。

通訊協定 連接埠 詳細資料
AMQP 5671 和 5672 請參閱 AMQP通訊協定指南
HTTPS 443 此埠用於 HTTP/REST API 和 AMQP-over-WebSockets。
Kafka 9093 請參閱 從 Kafka 應用程式使用事件中樞

當AMQP透過埠 5671 使用AMQP時,也需要 HTTPS 連接埠,因為用戶端 SDK 執行的數個管理作業,以及從 Microsoft Entra ID 取得令牌(使用時)透過 HTTPS 執行。

官方 Azure SDK 通常會使用 AMQP 通訊協定,從事件中樞傳送和接收事件。 AMQP-over-WebSockets 通訊協定選項會透過埠 TCP 443 執行,就像 HTTP API 一樣,但功能上與一般 AMQP 相同。 此選項的初始連線延遲較高,因為額外的交握來回行程和稍微增加額外負荷作為共用 HTTPS 埠的取捨。 如果選取此模式,TCP 埠 443 就足以進行通訊。 下列選項允許選取一般 AMQP 或 AMQP WebSockets 模式:

語言 選項
.NET EventHub 連線 ionOptions.TransportType 屬性與 EventHubsTransportType.AmqpTcpEventHubsTransportType.AmqpWebSockets
Java com.microsoft.azure.eventhubs.EventProcessorClientBuilder.transporttype with AmqpTransportType.AMQPAmqpTransportType.AMQP_WEB_SOCKETS
節點 EventHubConsumerClientOptions 具有 webSocketOptions 屬性。
Python 使用 TransportType.AmqpTransportType.AmqpOverWebSocket EventHubConsumerClient.transport_type

我需要允許哪些IP位址?

當您使用 Azure 時,有時您必須允許公司防火牆或 Proxy 中的特定 IP 位址範圍或 URL 存取您使用或嘗試使用的所有 Azure 服務。 確認事件中樞所使用的IP位址允許流量。 如需 Azure 事件中樞 所使用的IP位址:請參閱 Azure IP 範圍和服務標籤 - 公用雲端

此外,請確認允許命名空間的IP位址。 若要尋找正確的IP位址以允許連線,請遵循下列步驟:

  1. 從命令提示字元執行下列命令:

    nslookup <YourNamespaceName>.servicebus.windows.net
    
  2. 記下 中傳回的 Non-authoritative answerIP位址。

如果您使用 命名空間的區域備援 ,您需要執行一些額外的步驟:

  1. 首先,您會在 命名空間上執行 nslookup。

    nslookup <yournamespace>.servicebus.windows.net
    
  2. 記下非權威答案區段中的名稱,其格式如下:

    <name>-s1.cloudapp.net
    <name>-s2.cloudapp.net
    <name>-s3.cloudapp.net
    
  3. 使用後綴 s1、s2 和 s3 為每個實例執行 nslookup,以取得三個可用性區域中執行之所有三個實例的 IP 位址,

    注意

    命令傳回的 nslookup IP位址不是靜態IP位址。 不過,在基礎部署遭到刪除或移至不同的叢集之前,其會維持不變。

哪些用戶端 IP 正在將事件傳送至命名空間或接收事件?

首先,在命名空間上啟用 IP篩選

然後,依照啟用診斷記錄中的指示,為事件中樞虛擬網路連線事件啟用診斷記錄。 您會看到拒絕連線的IP位址。

{
    "SubscriptionId": "0000000-0000-0000-0000-000000000000",
    "NamespaceName": "namespace-name",
    "IPAddress": "1.2.3.4",
    "Action": "Deny Connection",
    "Reason": "IPAddress doesn't belong to a subnet with Service Endpoint enabled.",
    "Count": "65",
    "ResourceId": "/subscriptions/0000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/microsoft.eventhub/namespaces/namespace-name",
    "Category": "EventHubVNetConnectionEvent"
}

重要

只有在命名空間允許從 特定IP位址 存取時,才會產生虛擬網路記錄(IP 篩選規則)。 如果您不想使用這些功能來限制對命名空間的存取,但仍想要取得虛擬網路記錄來追蹤連線到事件中樞命名空間的用戶端 IP 位址,您可以使用下列因應措施:啟用 IP 篩選,並新增可尋址的 IPv4 範圍 (0.0.0.0/1 - 128.0.0.0/1) 和 IPv6 範圍總計 ()。::/1 - 8000::/1

注意

目前無法判斷個別訊息或事件的來源IP。

Apache Kafka 整合

如何? 整合我現有的 Kafka 應用程式與事件中樞?

事件中樞提供 Kafka 端點,可供您現有的 Apache Kafka 型應用程式使用。 設定變更是擁有 PaaS Kafka 體驗所需的所有專案。 它提供執行您自己的 Kafka 叢集的替代方案。 事件中樞支援 Apache Kafka 1.0 和較新的用戶端版本,並搭配現有的 Kafka 應用程式、工具和架構使用。 如需詳細資訊,請參閱 Kafka 存放庫的事件中樞。

需要對現有應用程式進行哪些設定變更,才能與事件中樞通訊?

若要連線到事件中樞,您必須更新Kafka客戶端設定。 其完成方式是建立事件中樞命名空間並取得 連接字串。 將 bootstrap.servers 變更為指向事件中樞 FQDN,並將埠變更為 9093。 更新 sasl.jaas.config,將 Kafka 用戶端導向至事件中樞端點(這是您取得的 連接字串),並具有正確的驗證,如下所示:

bootstrap.servers={YOUR.EVENTHUBS.FQDN}:9093
request.timeout.ms=60000
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.EVENTHUBS.CONNECTION.STRING}";

範例:

bootstrap.servers=dummynamespace.servicebus.windows.net:9093
request.timeout.ms=60000
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://dummynamespace.servicebus.windows.net/;SharedAccessKeyName=DummyAccessKeyName;SharedAccessKey=XXXXXXXXXXXXXXXXXXXXX";

注意

如果您的架構中不支援 sasl.jaas.config,請尋找用來設定 SASL 使用者名稱和密碼的組態,並改用它們。 將使用者名稱設定為 $連線 ionString,並將密碼設定為事件中樞 連接字串。

事件中樞的訊息/事件大小為何?

事件中樞允許的訊息大小上限為 1 MB。

輸送量單位

什麼是事件中樞輸送量單位? (標準層)

事件中樞的輸送量會定義以 MB 位元組為單位的數據量,或透過事件中樞輸入和輸出的 1 KB 事件數目(以千為單位)。 此輸送量是以輸送量單位 (TU) 來測量。 在開始使用事件中樞服務之前,請先購買 TU。 您可以使用入口網站或事件中樞 Resource Manager 範本,明確地選取事件中樞 TU。

輸送量單位是否適用於命名空間中的所有事件中樞?

是,輸送量單位 (TU) 適用於事件中樞命名空間中的所有事件中樞。 這表示您在命名空間層級購買 TU,且會在該命名空間下的事件中樞之間共用。 每個 TU 都會將命名空間授權為下列功能:

  • 每秒最多 1 MB 的輸入事件(傳送至事件中樞的事件),但每秒不超過 1,000 個輸入事件、管理作業或控制 API 呼叫。
  • 每秒最多 2 MB 的輸出事件(從事件中樞取用的事件),但不超過 4,096 個輸出事件。
  • 最多84 GB的事件記憶體(足以容納預設的1小時保留期間)。

輸送量單位如何計費?

輸送量單位(TU)會每小時計費。 計費是以指定小時內選取的單位數目上限為基礎。

如何優化輸送量單位的使用量?

您可以啟動一個輸送量單位 (TU),然後開啟 自動擴充。 自動擴充功能可讓您隨著流量/承載增加而增加 TU。 您也可以設定 TU 數目的上限。

事件中樞的自動擴充功能如何運作?

自動擴充功能可讓您相應增加輸送量單位 (TU)。 這表示您可以從購買低 TU 開始,隨著輸入的增加,自動擴大您的 TU。 它提供符合成本效益的選項,並完整控制要管理的 TU 數目。 這項功能只是相應增加的功能,您可以藉由更新 TU 來完全控制 TU 數目的相應減少。

您可能想要從低輸送量單位 (TU) 開始,例如 2 個 TU。 如果您預測您的流量可能會成長至15個TU,請在命名空間上啟用自動擴充功能,並將最大限制設定為15個TU。 您現在可以隨著流量成長而自動成長您的 TU。

當我啟用自動擴充功能時,是否有相關成本?

這項功能沒有任何相關成本

是否可以為現有的事件中樞命名空間啟用區域備援?

目前無法這樣做,因為舊的事件中樞命名空間位於不同的叢集中,而且無法將它們移轉至新的叢集,以在建立新的事件中樞命名空間時自動啟用區域備援。

如何強制執行輸送量限制?

如果命名空間中所有事件中樞的總輸入輸送量或輸入事件速率總計超過匯總輸送量單位配額,則傳送者會進行節流處理,並收到錯誤,指出已超過輸入配額。

如果命名空間中所有事件中樞的總輸出輸送量或事件輸出率總計超過匯總輸送量單位配額,則會節流接收者,但不會產生節流錯誤。

輸入和輸出配額會個別強制執行,讓任何傳送者都無法讓事件耗用量變慢,接收者也無法防止事件傳送至事件中樞。

可以保留/選取的輸送量單位數目是否有限制?

在 Azure 入口網站 中建立基本層或標準層命名空間時,您可以選取命名空間最多 40 個 TU。 事件中樞除了 40 個 TU 之外,還提供資源/容量型模型,例如事件中樞 進階版 和事件中樞專用叢集。 如需詳細資訊,請參閱事件中樞 進階版 - 概觀事件中樞專用 - 概觀

專用叢集

什麼是專用叢集?

事件中樞專用叢集為需求最苛刻的客戶提供單一租使用者部署。 此供應專案會建置未受輸送量單位約束的容量型叢集。 這表示您可以使用叢集來內嵌和串流數據,如叢集的CPU和記憶體使用量所決定。 如需詳細資訊,請參閱 事件中樞專用叢集

如何? 建立事件中樞專用叢集?

如需設定事件中樞專用叢集的逐步指示和詳細資訊,請參閱快速入門:使用 Azure 入口網站 建立專用事件中樞叢集。

我可以使用叢集達成什麼目標?

對於事件中樞叢集,您可以擷取和串流多少取決於各種因素,例如您的產生者、取用者、您擷取和處理的速率等等。

下表顯示我們在測試舊版專用叢集期間達成的基準檢驗結果:

承載圖形 接收者 輸入頻寬 輸入訊息 輸出頻寬 輸出訊息 RU 總計 每個 CU 的 TU
批次 100x1KB 2 400 MB/秒 400k messages/sec 800 MB/秒 800k messages/sec 400 個 TU 100 個 TU
10x10KB 的批次 2 666 MB/秒 66.6k messages/sec 1.33 GB/秒 133k messages/sec 666 TU 166 個 TU
6x32KB 的批次 1 1.05 GB/秒 34k messages / sec 1.05 GB/秒 34k messages/sec 1000 個 TU 250 TU

在測試中,使用了下列準則:

  • 已使用具有 4 個容量單位的專用層事件中樞叢集。
  • 用於擷取的事件中樞有 200 個分割區。
  • 擷取的數據是由接收自所有分割區的兩個接收者應用程式所接收。

我可以相應增加/減少叢集嗎?

如果您使用 [支持調整] 選項集建立叢集,您可以使用自助體驗視需要相應放大和相應縮小。 您可以使用自助式可調整的叢集來相應增加至 10 個 RU。 由於自助式可調整的專用叢集是以新的基礎結構為基礎,因此它們對於不支援自助式調整的專用叢集,將會有效能。 由於專用叢集的效能取決於各種因素,例如資源配置、分割區數目、記憶體等等,建議您在測試實際工作負載之後判斷所需的 SU 數目。

在下列案例中提交支援要求 ,以相應放大或相應放大您的專用叢集中。

  • 您需要超過 10 個 OU,才能使用自助式可調整的專用叢集(已設定支援調整選項所建立的叢集)。
  • 您必須在建立的叢集中相應放大或相應放大,而不選取 [ 支援調整 ] 選項
  • 您必須在發行自助體驗之前建立的專用叢集中相應放大或相應放大

警告

建立叢集之後,您將無法刪除叢集至少 4 小時。 因此,您需要支付最少 4 小時的叢集使用量費用。 如需定價的詳細資訊,請參閱 事件中樞 - 定價

我可以從舊版叢集移轉至自助式可調整叢集嗎?

由於基礎硬體和軟體基礎結構的差異,我們目前不支援將不支援自助式調整為自助式專用叢集的叢集移轉。 如果您想要使用自助式調整,您必須重新建立叢集。 若要瞭解如何建立可調整的叢集,請參閱 建立事件中樞專用叢集

何時調整我的專用叢集?

CPU 耗用量是專用叢集資源耗用量的重要指標。 當整體 CPU 耗用量達到 70% 時(未觀察到任何異常狀況,例如大量的伺服器錯誤或低成功要求),這表示您的叢集正朝著其最大容量移動。 因此,您可以使用此作為指標,以考慮是否需要相應增加專用叢集。

若要監視專用叢集的CPU使用量,您必須遵循下列步驟。

  • 在事件中樞專用叢集的 [計量] 頁面中,選取 [ 新增計量]。

  • 選取 CPU 作為計量,並使用 Max 作為匯總。

    Screenshot showing the Metrics page with the CPU metric.

  • 然後,選取 [新增篩選],然後為屬性類型Role新增篩選,使用等號運算符,然後從下拉式清單中選取這三個值。BackendGateway

    Screeshot showing the metrics page with CPU consumption metric and roles.

    然後,您可以監視此計量,以判斷何時應調整專用叢集。 您也可以針對此計量設定 警示 ,以在 CPU 使用量達到您設定的閾值時收到通知。

Geo-DR 如何與叢集搭配運作?

您可以在專用層叢集下將命名空間與專用層叢集下的另一個命名空間異地配對。 我們不鼓勵將專用層命名空間與標準供應專案中的命名空間配對,因為輸送量限制會不相容,並導致錯誤。

我可以將標準或進階命名空間移轉至專用層叢集嗎?

我們目前不支援將事件中樞數據從標準或進階命名空間遷移至專用的自動化移轉程式。

為什麼區域備援專用叢集至少有 8 個 CU?

為了為專用供應專案提供區域備援,所有計算資源都必須在相同區域中的 3 個數據中心之間有 3 個複本。 這是支援區域備援的最低需求(讓服務在2個區域/資料中心關閉時仍可運作),併產生相當於8個OU的計算容量。

因此,這不是我們可以變更的配額,而是使用專用層限制目前的架構。

資料分割

我需要多少個分割區?

由於 數據分割 是一種數據組織機制,可讓您以平行方式發佈及取用數據,因此建議您平衡縮放單位(TU、PUS 或 OU)和數據分割,以達到最佳規模。 一般而言,我們建議每個分割區的最大輸送量為 1 MB/秒。 因此,計算數據分割數目的經驗法則是將預期的輸送量上限除以 1 MB/秒。 例如,如果您的使用案例需要 20 MB/秒,建議您選擇至少 20 個分割區,以達到最佳輸送量。

不過,如果您的模型具有應用程式與特定分割區的親和性,則增加分割區數目可能並無好處。 如需詳細資訊,請參閱 可用性和一致性

定價

哪裡可以找到更多定價資訊?

如需事件中樞價格的完整資訊,請參閱事件中 樞定價詳細數據

保留事件中樞事件超過 24 小時的費用嗎?

事件中樞標準層最多允許訊息保留期間超過24小時,最多7天。 如果預存事件總數的大小超過所選輸送量單位數目的記憶體額度(每個輸送量單位 84 GB),則會以已發佈的 Azure Blob 儲存器費率收取超過津貼的大小。 每個輸送量單位中的儲存額度涵蓋 24 小時保留期間的所有記憶體成本,即使輸送量單位最多使用最大輸入額度也一樣。

事件中樞記憶體大小如何計算和收費?

所有預存事件的大小總計,包括事件標頭或所有事件中樞磁碟儲存結構的任何內部額外負荷,都會全天測量。 一天結束時會計算尖峰儲存體大小。 每日儲存額度會根據當天選取的輸送量單位數下限來計算 (每一個輸送量單位提供的額度為 84 GB)。 如果總大小超過計算的每日記憶體額度,則會使用 Azure Blob 記憶體費率來計費多餘的記憶體(以本地備援 儲存體 率計算)。

如何計算輸入事件?

傳送至事件中樞的每個事件都會計算為計費訊息。 輸入事件定義為小於或等於 64 KB 的數據單位。 大小小於或等於 64 KB 的任何事件都會被視為一個計費事件。 如果事件大於 64 KB,則會根據事件大小計算可計費事件的數目,以 64 KB 的倍數計算。 例如,傳送至事件中樞的 8 KB 事件會計費為一個事件,但傳送至事件中樞的 96 KB 訊息會計費為兩個事件。

從事件中樞取用的事件,以及管理作業和控制呼叫,例如檢查點,不會計入可計費的輸入事件,但會累算至輸送量單位津貼。

代理連線費用適用於事件中樞嗎?

連線 費用僅適用於使用AMQP通訊協定時。 不論有多少傳送端系統或裝置,使用 HTTP 傳送事件都不需要連線費用。 如果您打算使用AMQP(例如,若要達到更有效率的事件串流,或在IoT命令和控制案例中啟用雙向通訊),請參閱 事件中樞定價資訊 頁面,以取得每個服務層級包含多少個連線的詳細數據。

事件中樞擷取如何計費?

當命名空間中的任何事件中樞已啟用擷取選項時,就會啟用擷取。 事件中樞擷取會依每個購買的輸送量單位每月計費。 當輸送量單位計數增加或減少時,事件中樞擷取計費會以整小時增量反映這些變更。 如需事件中樞擷取計費的詳細資訊,請參閱 事件中樞定價資訊

我是否需支付我為事件中樞擷取選取的記憶體帳戶計費?

擷取會使用您在事件中樞上啟用時提供的記憶體帳戶。 如同您的記憶體帳戶,此設定的任何變更會向您 Azure 訂用帳戶收費。

配額

是否有任何與事件中樞相關聯的配額?

如需所有事件中樞配額的清單,請參閱 配額

疑難排解

為什麼我無法在從另一個訂用帳戶中刪除命名空間之後建立命名空間?

當您從訂用帳戶中刪除命名空間時,請等候 4 小時,再以另一個訂用帳戶中的相同名稱重新建立命名空間。 否則,您可能會收到下列錯誤訊息: Namespace already exists

事件中樞所產生的一些例外狀況及其建議的動作為何?

如需可能的事件中樞例外狀況清單,請參閱 例外狀況概觀

診斷記錄

事件中樞支援兩種類型的診斷記錄 - 擷取錯誤記錄和作業記錄 - 這兩種記錄都以 json 表示,而且可以透過 Azure 入口網站 開啟。

支援和 SLA

事件中樞的技術支援可透過 microsoft Q&A 問題頁面取得 Azure 服務匯流排。 計費及訂用帳戶管理支援均為免費提供。

若要深入瞭解我們的 SLA,請參閱 服務等級協議 頁面。

Azure Stack Hub

當使用 Azure Blob 儲存體 作為檢查點存放區時,如何以特定版本的 Azure 儲存體 SDK 為目標?

如果您在 Azure Stack Hub 上執行此程式代碼,除非您以特定 儲存體 API 版本為目標,否則會遇到運行時錯誤。 這是因為事件中樞 SDK 會使用 Azure 中可能無法在 Azure Stack Hub 平臺上使用的最新可用 Azure 儲存體 API。 Azure Stack Hub 可能支援不同於 Azure 上通常可用的 儲存體 Blob SDK 版本。 如果您使用 Azure 部落格 儲存體 作為檢查點存放區,請檢查 Azure Stack Hub 組建支援的 Azure 儲存體 API 版本,並在您的程式代碼中以該版本為目標。

例如,如果您在 Azure Stack Hub 2005 版上執行,則 儲存體 服務的最高可用版本是 2019-02-02 版。 根據預設,事件中樞 SDK 用戶端連結庫會在 SDK 發行時,使用 Azure 上可用的最高版本 (2019-07-07)。 在此案例中,除了本節中的下列步驟之外,您還需要新增程序代碼,以 儲存體 服務 API 2019-02-02 版為目標。 如需如何以特定 儲存體 API 版本為目標的範例,請參閱下列 C#、Java、Python 和 JavaScript/TypeScript 的範例。

如需如何從程式代碼以特定 儲存體 API 版本為目標的範例,請參閱 GitHub 上的下列範例:

下一步

您可以瀏覽下列連結,以深入瞭解事件中樞: