事件
3月31日 下午11時 - 4月2日 下午11時
最大的網狀架構、Power BI 和 SQL 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊服務匯流排異地複寫功能是隔離 Azure 服務匯流排應用程式與中斷和災害的選項之一,可提供中繼資料 (實體、組態、屬性) 和資料 (訊息資料和訊息屬性/狀態變更) 的複寫。
注意
此功能適用於 Azure 服務匯流排的進階層。
異地複寫功能可確保命名空間的中繼資料和資料會持續從主要區域複寫至一或多個次要區域。
注意
目前只支援單一次要來源。
此功能可讓您隨時將任何次要區域升階為主要區域。 升階次要來源會重新將命名空間的名稱指向已選取的次要區域,並在主要和次要區域之間切換角色。 升階一旦起始,幾乎立即完成。
重要
區域 | 區域 | 區域 |
---|---|---|
澳大利亞中部 | GermanyNorth | NorwayWest |
AustraliaCentral2 | GermanyWestCentral | 波蘭中心 |
澳大利亞東部 | 以色列Central | SouthAfricaNorth |
澳大利亞東南部 | 義大利諾思 | SouthAfricaWest |
BrazilSoutheast | JapanEast | SoutheastAsia |
CanadaCentral | JapanWest | SouthIndia |
加拿大東部 | JioIndiaCentral | 西班牙中心 |
CentralIndia | JioIndiaWest | SwedenCentral |
CentralUS | KoreaCentral | SwitzerlandNorth |
CentralUSEUAP | KoreaSouth | SwitzerlandWest |
EastAsia | 墨西哥中心 | UAECentral |
EastUS2 | NorthCentralUS | UAENorth |
FranceCentral | 北歐 | 英國南部 |
FranceSouth | NorwayEast | UKWest |
異地複寫功能可用來實作不同的案例,如此處所描述。
主要和次要區域之間會持續同步處理資料和中繼資料。 如果區域延遲或無法使用,您可以將次要區域升階為主要區域。 此升級允許在新升階區域中進行不間斷作業的工作負載。 這類升級可能需要降低服務匯流排或工作負載內的其他服務,特別是當您的目標是一起執行各種元件時。 視嚴重性和受影響的服務而定,您可以規劃或強制升階。 在計劃性升階的情況下,完成升階之前會先複寫正在傳輸的訊息,而在強制升階的情況下則會立即執行。
有時您想要移轉服務匯流排工作負載,以在不同的區域中執行。 例如,當 Azure 新增在地理上更接近您的位置、使用者或其他服務的新區域時。 或者,當大部分工作負載執行所在的區域已轉移時,您可能想要移轉。 異地複寫功能在這些情況下也提供了很好的解決方案。 在此情況下,您會在現有的命名空間上設定異地複寫,並將想要的新區域設定為次要區域,並等候同步處理完成。 此時,您會開始計劃性升階,允許複寫所有正在傳輸的訊息。 升階完成後,您現在可以選擇性地移除舊區域,現為次要區域,並繼續在想要的區域中執行您的工作負載。
異地複寫功能會在主要和次要複寫模型中實作中繼資料和資料複寫。 在特定時間會有一個單一主要區域,同時為生產者和消費者提供服務。 次要區域會作為熱備份區域,這表示無法與這些區域進行互動。 不過,它們會以與主要區域相同的組態執行,允許快速升級,這表示您的工作負載可以在完成升階後立即繼續執行。 異地複寫功能適用於 Azure 服務匯流排的進階層。
異地複寫功能的一些主要層面包含:
複寫模式有兩種: 同步和非同步。 了解這兩種模式之間的差異至關重要。
使用非同步複寫時,所有要求都會在主要區域上認可,接著通知會傳送至用戶端。 複寫到次要區域會以非同步方式進行。 使用者可以設定可接受的延遲時間上限。 延遲時間是主要區域與次要區域上最新動作之間的服務端位移。 如果使用中的次要區域延遲時間超出使用者設定,主要區域就會開始節流傳入要求。
使用同步複寫時,所有要求都會複寫到次要區域,且在主要區域認可前,必須在次要區域中進行認可和確認作業。 因此,您的應用程式發佈速度取決於發佈、複寫、確認和認可所需的時間。 此外,這也表示您的應用程式系結至這兩個區域的可用性。 如果次要區域延遲或無法使用,則訊息不會被確認和認可,而且主要區域會節流傳入要求。
使用同步複寫:
另一方面,同步複寫可提供您資料安全的最大保證。 如果您有同步複寫,當認可時,其會在您設定的所有異地複寫區域中認可,以提供最佳的資料保證。
使用自動非同步複寫:
因此,在認可資料之前,其不能保證所有區域都能像同步複寫一樣具有資料,而且可能會發生資料遺失或重複。 不過,當單一區域延遲或無法使用時,會改善應用程式可用性,同時降低延遲,而在此期間您不會立即受到影響。
功能 | 同步複寫 | 非同步複寫 |
---|---|---|
延遲 | 由於分散式認可作業,導致較長的延遲 | 受最小影響 |
可用性 | 與次要區域的可用性相關聯 | 遺失次要區域不會立即影響可用性 |
資料一致性 | 在確認之前,一律會在這兩個區域中進行資料認可 | 只有在確認之前,才會在主要環境中認可資料 |
RPO (復原點目標) | RPO 0,升階時不會遺失資料 | RPO > 0,升階時可能會遺失資料 |
設定異地複寫之後,可以變更複寫模式。 您可以從同步移至非同步,或從非同步移至同步。 如果您從非同步移至同步,您的次要複本會在延遲達到零之後設定為同步。 如果您在執行時因某些原因持續延遲,您可能需要暫停發行者以讓延遲達到零,並讓您的模式能夠切換至同步。 啟用同步複寫而不是非同步複寫的原因與資料重要性、特定商務需求或合規性相關聯,而非應用程式的可用性。
注意
如果次要區域延遲或變成無法使用,應用程式將無法再複寫至此區域,而且會在達到複寫延遲後開始節流。 若要繼續使用主要位置中的命名空間,可以移除受影響的次要區域。 如果未設定更多次要區域,命名空間會在啟用異地複寫的情況下繼續執行。 您可以隨時新增額外次要區域。
若要啟用異地複寫功能,您必須使用已啟用此功能的主要和次要區域。 異地複寫功能在於能夠將已發佈的訊息從主要區域複寫到次要區域。 如果次要區域位於另一個洲,這會對從主要區域到次要區域的複寫延遲產生重大影響。 如果因為可用性原因使用異地複寫,最好讓次要區域盡可能位於相同的洲。 若要進一步了解地理距離所導致的延遲,您可以透過 Azure 網路來回延遲統計資料以深入了解。
異地複寫功能可讓客戶設定次要區域,以複寫中繼資料和資料。 因此,客戶可以從儀表板執行下列管理工作:
注意
目前僅支援公開預覽版中的新命名空間。
下一章節將概述透過 Azure 入口網站在新命名空間上設定異地複寫功能。
注意
在公開預覽期間,這項體驗可能會變更。 我們將據以更新這份文件。
若要建立已啟用異地復寫功能的命名空間,請新增 geoDataReplication 屬性區段。
param serviceBusName string
param primaryLocation string
param secondaryLocation string
param maxReplicationLagInSeconds int
resource sb 'Microsoft.ServiceBus/namespaces@2023-01-01-preview' = {
name: serviceBusName
location: primaryLocation
sku: {
name: 'Premium'
tier: 'Premium'
capacity: 1
}
properties: {
geoDataReplication: {
maxReplicationLagDurationInSeconds: maxReplicationLagInSeconds
locations: [
{
locationName: primaryLocation
roleType: 'Primary'
}
{
locationName: secondaryLocation
roleType: 'Secondary'
}
]
}
}
}
建立已啟用異地複寫功能的命名空間后,您可以從 [複寫 (預覽)] 刀鋒視窗管理此功能。
若要在複寫模式之間切換,或更新複寫延遲上限,請按一下 [複寫一致性] 底下的連結,然後按一下核取方塊來啟用/停用同步複寫,或更新文字框中的值以變更非同步複寫延遲。
若要移除次要區域,請按兩下區域旁邊的 [... - 省略符號],然後按一下 [刪除]。 若要刪除區域,請遵循快顯刀鋒視窗中的指示。
升階會由客戶手動觸發 (明確地透過命令來觸發,或透過用戶端所擁有會觸發該命令的商務邏輯來觸發),而一律不會由 Azure 觸發。 這會賦予客戶完整的所有權和可見性,以解決 Azure 骨幹上發生的中斷情況。 選擇 [規劃] 升階時,服務會等到趕上複寫延遲後,再起始升階。 另一方面,選擇 [強制] 升階時,服務會立即起始升階。 在要求升階時,命名空間會維持唯讀模式,直到升階完成為止。 在計劃性升階起始之後,您可以隨時執行強制升階。 在計劃性容錯移轉花費超過所需時間時,這可以讓使用者控制加速升階。
重要
使用強制升級時,任何尚未複寫的資料都可能會遺失。
起始升階之後:
主機名稱會更新為指向次要區域,最多可能需花費幾分鐘的時間。
注意
您可以起始 ping 命令來檢查目前的主要區域:ping your-namespace-fully-qualified-name
用戶端會自動重新連線至次要區域。
您可以使用監視系統或使用自訂監視解決方案來自動升階。 不過,這類自動化會採用額外的計劃和工作,這部分不在本文的範圍內。
在入口網站中,按一下 [升階] 圖示,然後依照快顯刀鋒視窗中的指示來刪除區域。
執行 Azure CLI 命令以起始升級。 Force 屬性是選擇性的,預設為 false。
az rest --method post --url https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.ServiceBus/namespaces/<namespaceName>/failover?api-version=2023-01-01-preview --body "{'properties': {'PrimaryLocation': '<newPrimaryLocation>', 'api-version':'2023-01-01-preview', 'Force':'false'}}"
使用者可以監視 Log Analytics 中的複寫延遲時間計量,以監視複寫作業的進度。
AzureMetrics
| where TimeGenerated > ago(1h)
| where MetricName == "ReplicationLagDuration"
發佈應用程式可以透過已啟用異地複寫命名空間的命名空間主機名稱,以發佈資料至異地複寫命名空間。 發佈方法與非異地複寫案例相同,而且不需要變更資料平面 SDK 或用戶端應用程式。 在下列情況中可能無法發佈:
發行者應用程式無法直接存取次要區域中的任何命名空間。
取用應用程式可以透過已啟用異地複寫功能的命名空間主機名稱來取用資料。 在完成升階之前,不支援取用者作業。
請注意此版本的下列考量:
服務匯流排的進階層會依傳訊單位定價。 使用異地複寫功能,次要區域會在與主要區域相同的 MU 數量上執行,而且定價會計算在 MU 總數上。 此外,會根據發佈的頻寬次數乘上次要區域數量來收取費用。 在初期公開預覽期間該費用將免除。
若要深入了解服務匯流排傳訊,請參閱下列文章:
事件
3月31日 下午11時 - 4月2日 下午11時
最大的網狀架構、Power BI 和 SQL 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊訓練
認證
Microsoft Certified: Azure for SAP Workloads Specialty - Certifications
示範在運用 Azure 資源時,Microsoft Azure 上的 SAP 解決方案之規劃、移轉和作業。
文件
Azure 服務匯流排地理災害復原 - Azure Service Bus
如何在 Azure 服務匯流排中使用地理區域為中繼資料進行容錯移轉和災害復原
將 Azure 服務匯流排應用程式隔絕中斷和災害 - Azure Service Bus
本文提供技術來保護應用程式免於遭遇潛在的 Azure 服務匯流排中斷。
訊息複寫和跨區域同盟 - Azure 服務匯流排 - Azure Service Bus
本文概述使用 Azure 服務匯流排的事件複寫和跨區域同盟。