Azure 事件中樞 - 異地災害復原
本文說明可複寫中繼資料且已正式推出的異地災害復原功能。 本文未涵蓋公開預覽版異地複寫功能,該功能可複製資料和中繼資料。 如需詳細資訊,請參閱 異地複寫。
具有可用性區域支援的全主動 Azure 事件中樞叢集模型可提供硬體和資料中心中斷的復原能力。 不過,如果是造成整個地區和所有區域都無法使用的災害,您可以使用異地災害復原來復原工作負載和應用程式設定。 異地災害復原可確保命名空間的整個組態 (事件中樞、取用者群組和設定) 在配對時,會持續從主要命名空間複寫到次要命名空間的命名空間。
Azure 事件中樞的地理災害復原功能就是一個災害復原解決方案。 本文中所述的概念和工作流程適用於災害案例,不適用暫時性中斷。 如需 Microsoft Azure 中災害復原的詳細討論,請參閱本文。 透過異地災害復原,您可以隨時起始從主要命名空間移至次要命名空間的一次性容錯移轉。 容錯移轉移動會將命名空間的所選別名名稱指向次要命名空間。 移動之後,就會移除配對。 容錯移轉一旦起始,幾乎立即完成。
重要
- 此功能支援以相同設定立即繼續作業,但不複寫事件資料。 除非災害導致損失所有區域,否則容錯移轉之後,即可復原主要事件中樞保留的事件資料,而且一旦恢復存取,即可從該處取得歷史事件。 若要在主動/主動設定中複寫事件資料和操作對應的命名空間,以應付中斷和災害,請勿依賴此異地災害復原功能集,而是遵循複寫指導。
- 對主要命名空間中實體的 Microsoft Entra 角色型存取控制 (RBAC) 指派,不會複寫至次要命名空間。 在次要命名空間中手動建立角色指派,以安全存取這些實體。
基本概念與術語
災害復原功能會實作中繼資料災害復原,並依賴主要和次要災害復原命名空間。 異地災害復原功能僅適用於標準、進階和專用層級。 您不需要進行任何連接字串變更,因為連接是透過別名建立的。
本文中使用下列術語:
- 別名:所設定之災害復原設定的名稱。 別名提供單一穩定完整網域名稱 (FQDN) 連接字串。 應用程式會使用這個別名連接字串連接到命名空間。
- 主要/次要命名空間:對應到別名的命名空間。 主要命名空間為主動狀態,且會接收訊息 (可以是現有或新的命名空間)。 次要命名空間為被動狀態,不會接收訊息。 這兩者間的中繼資料會進行同步處理,因此,這兩者均能順暢地接受訊息,而不需進行任何應用程式程式碼或連接字串變更。 若要確保只有主動命名空間會接收訊息,您必須使用別名。
- 中繼資料:實體 (例如事件中樞和取用者群組) 以及與命名空間相關聯的服務屬性。 只有實體及其設定會自動複寫。 不會複寫訊息和事件。
- 容錯移轉:啟用次要命名空間的程序。
支援的命名空間配對
以下是支援的主要和次要命名空間組合:
主要命名空間層 | 允許的次要命名空間層 |
---|---|
標準 | 標準、專用 |
進階 | 進階 |
專用 | 專用 |
重要
您無法將位於相同專用叢集中的命名空間配對。 您可以配對位於不同叢集中的命名空間。
設定和容錯移轉流程
下一節是容錯移轉程序的概觀,並說明如何設定初始容錯移轉。
注意
異地災害復原功能不支援自動容錯移轉。
設定
首先建立或使用現有的主要命名空間,以及新的次要命名空間,然後將這兩個命名空間配對。 此配對會為您提供可用來連接的別名。 由於您使用別名,因此不需變更連接字串。 只需將新的命名空間新增至您的容錯移轉配對。
建立主要命名空間。
在不同區域中建立次要命名空間。 此步驟是選擇性的。 您可以在下一個步驟中建立配對時建立次要命名空間。
在 Azure 入口網站中,瀏覽至您的主要命名空間。
在左側功能表上選取 [異地復原],然後選取工具列上的 [起始配對]。
在 [起始配對] 頁面上,請遵循下列步驟:
- 選取現有的次要命名空間,或在不同區域建立次要命名空間。 在此範例中,已選取現有的命名空間。
- 針對 [別名],輸入異地災害復原配對的別名。
- 然後,選取 [建立]。
您應該會看到 [異地災害復原別名] 頁面。 您也可以在左側功能表上選取 [異地復原],從主要命名空間瀏覽至此頁面。
在 [異地災害復原別名] 頁面上,選取左側功能表上的 [共用存取原則],以存取別名的主要連接字串。 請使用此連接字串,不要直接使用主要/次要命名空間的連接字串。
在此 [概觀] 頁面上,您可以執行下列動作:
最後,您應該新增某些監視來偵測是否需要容錯移轉。 在大部分情況下,服務是大型生態系統的一部分,因此不太可能自動容錯移轉,容錯移轉通常都必須與其餘子系統或基礎結構同步執行。
範例
在此案例的一個範例中,請考慮銷售點 (POS) 解決方案,它會發出訊息或事件。 事件中樞會將這些事件傳遞至某些對應或重新格式化解決方案,接下來將對應資料轉接到另一個系統,以進一步處理。 屆時,這些系統都會裝載於相同的 Azure 區域。 根據基礎結構中的資料流程,決定何時容錯移轉和要移轉什麼。
您可以使用監視系統或使用自訂監視解決方案來自動容錯移轉。 不過,這類自動化會採用額外的計劃和工作,這部分不在本文的範圍內。
容錯移轉流程
如果您初始化容錯移轉,需要兩個步驟:
- 如果發生另一個中斷,您會希望能夠再次進行容錯移轉。 因此,請設定另一個被動命名空間,並更新配對。
- 一旦主要命名空間再次可供使用之後,從先前的主要命名空間提取訊息。 然後,針對地理復原設定以外的一般訊息使用該命名空間,或者刪除舊的主要命名空間。
注意
僅支援失敗轉接語意。 在此案例中,您容錯移轉然後與新的命名空間重新配對。 不支援容錯復原;例如,在 SQL 叢集。
手動容錯移轉
本節說明如何使用 Azure 入口網站、CLI、PowerShell、C# 等來手動容錯移轉。
在 Azure 入口網站中,瀏覽至您的主要命名空間。
在左側功能表上選取 [異地復原]。
手動容錯移轉至次要命名空間。 選取工具列上的 [容錯移轉]。
警告
容錯移轉會啟動次要命名空間,並從異地災害復原配對中移除主要命名空間。 建立另一個命名空間,以產生新的異地災害復原配對。
管理
如果您發生錯誤;例如,您在初始化安裝期間配對錯誤的區域,您可以隨時中斷兩個命名空間的配對。 如果您想要使用配對的命名空間作為一般命名空間,請刪除別名。
考量
請記住下列考量:
事件中樞異地災害復原的設計並不會複寫資料,因此您無法在次要事件中樞上重複使用主要事件中樞的舊位移值。 建議您使用下列其中一種方法來重新啟動您的事件接收器:
- EventPosition.FromStart() - 如果您想要讀取次要事件中樞上的所有資料。
- EventPosition.FromEnd() - 如果您想要讀取連線到次要事件中樞之後的所有新資料。
- EventPosition.FromEnqueuedTime(dateTime) - 如果您想要讀取次要事件中樞上自指定日期和時間之後接收的所有資料。
在您的容錯移轉規劃中,您也應該考慮時間因素。 例如,如果您中斷連線時間超過 15 到 20 分鐘,您可能會決定初始化容錯移轉。
事實上,未複寫任何資料就表示未複寫目前作用中的工作階段。 此外,重複的偵測和排程訊息可能無法運作。 新的工作階段、排程訊息及新的重複項目會運作。
容錯移轉複雜分散式基礎結構應該至少演練一次。
同步處理實體可能需要一些時間,大約每分鐘 50-100 個實體。
次要命名空間的管理平面的某些層面會在異地復原配對為作用中時變成唯讀。
當異地復原配對為作用中時,次要命名空間的資料平面會是唯讀的。 次要命名空間的資料平面將接受 GET 要求,以啟用用戶端連線和存取控制的驗證。
私人端點
關於異地災害復原與使用私人端點的命名空間一起使用,本節提供其他考量。 若要瞭解如何在一般情況下搭配使用私人端點與事件中樞,請參閱設定私人端點。
新配對
如果您嘗試在具有私人端點的主要命名空間與沒有私人端點的次要命名空間之間建立配對,配對將會失敗。 只有當主要和次要命名空間都具有私人端點時,配對才會成功。 建議您在主要和次要命名空間,以及在建立私人端點的所在虛擬網路上使用相同的設定。
注意
當您嘗試將具有私人端點的主要命名空間和次要命名空間配對時,驗證程序只會檢查次要命名空間上是否存在私人端點。 不會檢查端點是否正常運作,或在容錯移轉之後是否可運作。 您必須負責確保具有私人端點的次要命名空間在容錯移轉之後能如預期般運作。
若要測試主要和次要命名空間上的私人端點組態是否相同,請將讀取要求 (例如取得事件中樞) 傳送至虛擬網路外部的次要命名空間,並確認您收到來自服務的錯誤訊息。
現有配對
如果主要和次要命名空間之間的配對已存在,在主要命名空間上的私人端點建立將會失敗。 若要解決此問題,請先在次要命名空間上建立私人端點,然後再為主要命名空間建立私人端點。
注意
我們允許對次要命名空間唯讀存取,也允許更新私人端點設定。
建議的設定
建立應用程式和事件中樞命名空間的災害復原設定時,您必須針對裝載您應用程式主要和次要執行個體的虛擬網路,建立主要和次要事件中樞命名空間的私人端點。
假設您有兩個虛擬網路:VNET-1
、VNET-2
,以及下列主要和次要命名空間:EventHubs-Namespace1-Primary
、EventHubs-Namespace2-Secondary
。 您需要執行下列步驟:
- 在
EventHubs-Namespace1-Primary
上,建立兩個私人端點,使用VNET-1
和VNET-2
的子網路 - 在
EventHubs-Namespace2-Secondary
上,建立兩個私人端點,使用與VNET-1
和VNET-2
相同的子網路
這種方法的優點是,容錯移轉可能會發生在與事件中樞命名空間無關的應用程式層。 請考量下列案例:
僅限應用程式容錯移轉:這裡,應用程式不存在於 VNET-1
,但會移至 VNET-2
。 由於在主要和次要命名空間的 VNET-1
和 VNET-2
都已設定這兩個私人端點,應用程式會正常執行。
僅限事件中樞命名空間容錯移轉同樣地,此案例中由於在主要和次要命名空間的虛擬網路上都設定了這兩個私人端點,應用程式就會正常運作。
注意
如需虛擬網路的異地災害復原指引,請參閱虛擬網路 - 商務持續性。
角色型存取控制
對主要命名空間中實體的 Microsoft Entra 角色型存取控制 (RBAC) 指派,不會複寫至次要命名空間。 在次要命名空間中手動建立角色指派,以安全存取這些實體。
相關內容
請參閱下列範例或參考文件。