共用方式為


教學課程:將 JBoss EAP 應用程式伺服器遷移至具有高可用性和災害復原的 Azure 虛擬機

本教學課程說明在 Azure 虛擬機上使用 JBoss EAP 實作 Java 高可用性和災害復原(HA/DR)的簡單且有效的方法。 此解決方案說明如何使用在 JBoss EAP 應用程式伺服器上執行的簡單資料庫驅動 Jakarta EE 應用程式,達到低復原時間目標 (RTO) 和恢復點目標 (RPO)。 HA/DR 是一個複雜的主題,有許多可能的解決方案。 最佳解決方案取決於您的獨特需求。 如需實作 HA/DR 的其他方式,請參閱本文結尾的資源。

在本教學課程中,您將瞭解如何:

  • 在 Azure VM 上設定 JBoss EAP 叢集。
  • 使用 Azure 優化的最佳作法來達成高可用性和災害復原。
  • 在配對區域中設定Microsoft Azure SQL Database 故障轉移群組。
  • 使用 Azure Site Recovery 設定叢集的災害復原。
  • 設定 Azure 流量管理員。
  • 測試從主系統切換至備用系統。

下圖說明您建置的架構:

Azure VM 上 JBoss EAP 解決方案架構的圖表,其中包含高可用性和災害復原。

Azure 流量管理員會檢查區域的健康情況,並據以將流量路由傳送至應用層。 主要區域具有 JBoss EAP 叢集的完整部署。 在由 Azure Site Recovery保護主要區域後,您可以在故障切換期間還原次要區域。 因此,主要區域會主動為使用者的網路要求提供服務,而次要區域是被動的,而且只有在主要區域遇到服務中斷時才會接收流量。

Azure 流量管理員會偵測部署在 JBoss EAP 叢集中的應用程式健康情況,以實作條件式路由。 應用層的異地故障轉移 RTO 取決於關閉主要叢集、還原次要叢集、啟動 VM 和執行次要 JBoss EAP 叢集的時間。 RPO 取決於 Azure Site Recovery 和 Azure SQL Database 的複製策略,因為叢集數據會儲存並復寫在 VM 和應用程式數據的本機記憶體中,並保存在 Azure SQL Database 故障轉移群組中。

上圖顯示 主要區域次要區域, 為組成HA/DR架構的兩個區域。 這些區域必須是 Azure 配對的區域。 如需配對區域的詳細資訊,請參閱 Azure 跨區域複寫。 本文使用美國東部和美國西部作為兩個區域,但它們可以是任何對您的案例有意義的配對區域。 如需區域配對的清單,請參閱 Azure 跨區域復寫Azure 配對區域 一節。

資料庫層包含具有主伺服器和輔助伺服器的 Azure SQL Database 故障轉移群組。 讀取/寫入接聽器端點一律指向主伺服器,並連接到每個區域中的 JBoss EAP 叢集。 異地故障轉移會將群組中的所有輔助資料庫切換成主要的角色。 如需了解 Azure SQL Database 的異地故障轉移 RPO 和 RTO,請參閱 業務連續性概覽

本教學課程是以 Azure Site Recovery 和 Azure SQL Database 服務撰寫,因為本教學課程依賴這些服務的 HA 功能。 其他資料庫選擇是可能的,但您必須考慮您選擇的任何資料庫的HA功能。

先決條件

在配對區域中設定 Azure SQL Database 故障轉移群組

在本節中,您會在配對區域中建立 Azure SQL Database 故障轉移群組,以搭配 JBoss EAP 叢集和應用程式使用。

首先,依照 快速入門中的 Azure 入口網站步驟建立主要 Azure SQL Database:建立單一資料庫 - Azure SQL Database。 請遵循步驟至 (不包括清除資源)。 當您流覽本文時,請使用下列指示,然後在建立並設定 Azure SQL Database 之後返回本文。

當您到達 建立單一資料庫一節時,請使用下列步驟:

  1. 在建立新資源群組的步驟 4 中,記下 資源組名 值,例如 sqlserver-rg-gzh032124

  2. 在資料庫名稱的步驟 5 中,記下 資料庫名稱 值,例如,mySampleDatabase

  3. 在建立伺服器的步驟 6 中,使用下列步驟:

    1. 填入唯一的伺服器名稱,例如,sqlserverprimary-gzh032124
    2. 對於 位置,選擇 (美國)東部
    3. 針對 [驗證方法],選取 [使用 SQL 驗證]
    4. 記下 伺服器管理員登入的 值,例如 azureuser
    5. 記下 密碼 值。
  4. 在步驟 8 中,針對 工作負載環境,選取 [開發]。 查看描述,並考慮工作負載的其他選項。

  5. 在步驟 10 中,針對 [計算層],選取 [已布建]。

  6. 在步驟 11 中,針對 備份記憶體備援,選取 [本機備援備份記憶體。 請考慮備份的其他選項。 如需詳細資訊,請參閱 Azure SQL Database中 自動備份的 備份記憶體備援 一節。

  7. 在步驟 14 的 防火牆規則 組態中,針對 [允許 Azure 服務和資源存取此伺服器],選取 [是] [是]

  8. 當您進入“查詢資料庫”一節時,請使用下列步驟,而非其他文章中的步驟:

    1. 在步驟 3 中,輸入您的 SQL 驗證 伺服器管理員登入資訊來登入。

      注意

      如果登入失敗,且錯誤訊息類似 IP 位址為 'xx.xx.xx.xx' 的用戶端無法存取伺服器,請在錯誤訊息結尾選取 [允許清單 IP xx.xx.xx.xx.xx],<your-sqlserver-name>。 等候伺服器防火牆規則完成更新,然後再次選取確定

    2. 在步驟 5 中執行範例查詢後,請清空編輯器並輸入以下查詢,然後再次選擇 [執行]:

        CREATE TABLE ispn_entry_sessions_javaee_cafe_war (
          id VARCHAR(255) PRIMARY KEY,  -- ID Column to hold cache entry ids
          data VARBINARY(MAX),          -- Data Column to hold cache entry data
          timestamp BIGINT,             -- Timestamp Column to hold cache entry timestamps
          segment INT
          );
      

      成功執行之後,您應該會看到查詢成功 訊息:受影響的數據列:0

      資料庫數據表 ispn_entry_sessions_javaee_cafe_war 用於儲存 JBoss EAP 叢集的會話數據。

然後,按照 Azure 入口網站中 中的步驟來建立 Azure SQL Database 故障轉移群組並設定 Azure SQL Database 的故障轉移群組。 您只需要下列各節:建立故障轉移群組測試計劃性故障轉移。 當您流覽本文時,請使用下列步驟,然後在建立並設定 Azure SQL Database 故障轉移群組之後返回本文:

  1. 當您到達 建立故障轉移群組區段時,請使用下列步驟:

    1. 在建立故障轉移群組的步驟 5 中,輸入並記下唯一的故障轉移組名,例如,failovergroup-gzh032124

    2. 在設定伺服器的步驟 5 中,選取選項以建立新的輔助伺服器,然後使用下列步驟:

      1. 輸入唯一的伺服器名稱 ─例如,sqlserversecondary-gzh032124
      2. 輸入與主伺服器相同的伺服器管理員和密碼。
      3. 針對 [位置],選取 [(美國)西美國 2]。
      4. 請確定已選取 允許 Azure 服務存取伺服器
    3. 在設定群組內 資料庫的步驟 5 中,選取您在主伺服器中建立的資料庫,例如,

  2. 完成 測試計劃性故障轉移一節中的所有步驟之後,請讓故障轉移群組頁面保持開啟,並在稍後將它用於 JBoss EAP 叢集的故障轉移測試。

注意

本文會引導您建立具有 SQL 驗證的 Azure SQL Database 單一資料庫,以便簡單起見,因為本文著重於的 HA/DR 設定已經非常複雜。 更安全的做法是針對 Azure SQL 使用 Microsoft Entra 驗證,以驗證資料庫伺服器連線。

在 Azure VM 上設定主要 JBoss EAP 叢集

在本節中,您會透過使用 VM 上的 JBoss EAP 叢集產品供應,在 Azure VM 上建立主要的 JBoss EAP 叢集。 次要叢集會在故障轉移期間於稍後使用 Azure Site Recovery 從主要叢集還原。

部署主要 JBoss EAP 叢集

首先,在瀏覽器中開啟 VM 供應專案的 JBoss EAP 叢集,然後選取 [建立]。 您應該會看到方案中的 [基本] 窗格。

使用下列步驟填寫 [基本] 窗格:

  1. 請確定 訂用帳戶 所顯示的值與必要條件區段中所列角色的值相同。
  2. 您必須在空的資源群組中部署供應專案。 在 [資源群組] 欄位中,選取 [建立新的],然後填入資源群組的唯一值,例如 jboss-eap-cluster-eastus-gzh032124
  3. 在 [實例詳細數據] 下,針對 [區域],選取 [美國東部]。
  4. 提供密碼 密碼,並使用相同值 確認密碼
  5. 對於要建立的虛擬機數目 ,輸入 3
  6. 保留其他欄位的預設值。
  7. 選取 下一步 以移至 JBoss EAP 設定 面板。

Azure 入口網站的螢幕快照,其中顯示 [Azure VM 基本] 窗格上的 [JBoss EAP 應用程式伺服器叢集]。

使用下列步驟填寫 [JBoss EAP 設定] 窗格:

  1. 針對 JBoss EAP 密碼提供 JBoss EAP 密碼。 使用相同的值來確認密碼 。 記下值以供日後使用。
  2. 保留其他欄位的預設值。
  3. 選取 [下一步] 以進入 [Azure 應用程式網關] 窗格。

Azure 入口網站的螢幕快照,其中顯示 [JBoss EAP 應用程式設定] 組態窗格。

使用下列步驟來完成填寫 Azure 應用程式網關 窗格:

  1. 如需 連線至 Azure 應用程式閘道?,請選取 [是]
  2. 保留其他欄位的預設值。
  3. 選取 下一步 以前往 網路 窗格。

顯示 [Azure 應用程式閘道] 窗格的 Azure 入口網站的螢幕快照。

您應該會在 [網路] 窗格中看到所有已預先填入預設值的欄位。 選取 下一步 以移至 資料庫 窗格。

Azure 入口網站的螢幕快照,其中顯示 [網络] 窗格。

使用下列步驟填寫 [資料庫] 欄位:

  1. 對於 連線到資料庫?,請選取 [是]
  2. 針對 [選擇資料庫類型],選取 [Microsoft SQL Server ]。
  3. 針對 JNDI 名稱,輸入 java:jboss/datasources/JavaEECafeDB
  4. 針對 資料來源連接字串(jdbc:sqlserver://<主機>:<埠>;database=<資料庫>),將佔位符替換為您從上一節記下之 Azure SQL Database 容錯組的值,例如,jdbc:sqlserver://failovergroup-gzh032124.database.windows.net:1433;database=mySampleDatabase
  5. 針對 資料庫使用者名稱,輸入伺服器管理員登入名稱和您從上一節記下的故障轉移組名,例如,azureuser@failovergroup-gzh032124
  6. 輸入您之前記錄下來的伺服器管理員登入密碼,用於 資料庫密碼。 輸入相同的值給 確認密碼
  7. 選取 檢閱 + 建立]
  8. 等候 執行最終驗證... 成功完成,然後選取 [建立 ]。

Azure 入口網站的螢幕快照,其中顯示 [資料庫] 窗格。

一段時間后,您應該會看到 [部署] 頁面,其中 部署正在進行中 顯示。

注意

如果您在 執行最終驗證期間看到任何問題...,請修正問題,然後再試一次。

視所選區域中的網路狀況和其他活動而定,部署最多可能需要 35 分鐘才能完成。 之後,您應該會看到文字 您的部署完成 顯示在部署頁面上。

確認部署的功能

使用下列步驟,從 Red Hat JBoss Enterprise Application Platform 管理控制台,確認 Azure VM 上 JBoss EAP 叢集的部署功能:

  1. 在「您的部署已完成」頁面 上,選取 [輸出]

  2. 選取 adminConsole旁的複製圖示。

    Azure 入口網站的螢幕快照,顯示部署輸出,其中 adminConsole URL 已被醒目顯示。

  3. 將 URL 貼到因特網連線的網頁瀏覽器中,然後按 Enter。 您應該會看到熟悉的 Red Hat JBoss Enterprise Application Platform 管理控制台登入畫面,如下列螢幕快照所示。

    JBoss EAP 管理主控台登入畫面的螢幕快照。

  4. 填入 jbossadmin 作為 JBoss EAP 系統管理員使用者名稱,然後提供您之前為 密碼指定的 JBoss EAP 密碼,接著選擇 登入

  5. 您應該會看到熟悉的 Red Hat JBoss Enterprise Application Platform 管理控制台歡迎頁面,如下列螢幕快照所示。

    JBoss EAP 管理主控台歡迎頁面的螢幕快照。

  6. 選取 [運行時間] 索引標籤。在瀏覽窗格中,選取 [拓撲] 。 您應該會看到叢集包含一個網域控制器 主伺服器 和兩個工作節點,正如下列螢幕快照所示:

    JBoss EAP 管理主控台運行時間拓撲的螢幕快照。

讓管理主控台保持開啟。 您可以使用它,在下一節中將範例應用程式部署至 JBoss EAP 叢集。

設定叢集

使用下列步驟來設定所有應用程式伺服器的資料庫分散式會話:

  1. 在瀏覽面板中選取 [ 組態 ]。 然後,選取 [Profiles]>ha>Infinspan>Web

  2. 在 [快取] 資料行中,選取 新增分散式快取

    JBoss EAP 管理控制台的螢幕快照:新增分散式快取。

  3. 針對 名稱,輸入 azure-session,然後選取 新增

  4. 您應該看到訊息 分散式快取 azure-session 已成功新增。 如果您沒有看到此訊息,請檢查通知中心。 您必須先看到此訊息,才能繼續。

  5. 新增快取之後,請選取 azure-session>檢視

  6. 選取 商店

  7. 將下拉選單更改為顯示 JDBC,然後選取 [新增]。

  8. 針對 數據源,選取 [dataSource-mssqlserver],然後選取 [新增]。

    JBoss EAP 管理控制台市集 JDBC 的螢幕快照。

  9. 您應該會看到訊息 JDBC 成功新增。 如果您沒有看到此訊息,請檢查通知中心。 您必須先看到此訊息,才能繼續。

  10. 在 [市集:JDBC] 頁面上,選取 [編輯]。 設定下列屬性值:

    • 方言 設定為 SQL_SERVER
    • 鈍化 設定為 關閉
    • 清除 設定為 OFF
    • 共用 設定為 on
  11. 選取 儲存

    JBoss EAP 管理控制台編輯存放區 JDBC 的螢幕快照。

  12. 您應該看到訊息 JDBC 已成功修改。 如果您沒有看到此訊息,請檢查通知中心。 您必須先看到此訊息,才能繼續。

  13. 選擇 字串數據表>,然後編輯。 填入下列值,然後選取 [儲存] :

    • 前綴 設定為 ispn_entry_sessions
    • 識別碼資料行/識別碼欄名稱 設定為 識別碼
    • 識別碼欄 / 識別碼欄類型 設定為 VARCHAR(255)
    • 資料行/資料行名稱 設定為 資料
    • 資料列/資料行類型 設定為 VARBINARY(MAX)
    • 時間戳資料列/時間戳資料列名稱 設定為 時間戳
    • 時間戳資料列/時間戳資料行類型 設定為 BIGINT

    JBoss EAP 管理主控台 [編輯字串資料表] 的螢幕快照。

    此處的任何錯字都會導致整個系統失敗。 在繼續之前,請先仔細檢查填入的值。

  14. 選取 [儲存]。

  15. 您應該會看到 字串資料表成功修改的訊息。 如果您沒有看到此訊息,請檢查通知中心。 您必須先看到此訊息,才能繼續。

  16. 在頂端導覽面板中選取「組態」。 然後,選取 配置檔>ha>可分配的網頁>檢視

    JBoss EAP 管理控制台的可分發 Web 檢視畫面螢幕快照。

  17. 選取 Infinspan SSO>預設>編輯

    JBoss EAP 管理控制台的螢幕快照:編輯 Infinspan SSO。

  18. 快取 的值設定為 azure-session,然後選取 儲存

  19. 您應該會看到訊息 Infinispan 單一登入管理預設已成功修改。 如果您沒有看到此訊息,請檢查通知中心。 您必須先看到此訊息,才能繼續。

  20. 使用拓撲來重載或重新啟動受影響的伺服器。

  21. 在瀏覽面板中選取 [Runtime],然後選取 [拓撲]。

  22. 針對 main-server-group 欄的每一行,選取伺服器,然後選取 重載

    JBoss EAP 管理主控台重載伺服器的螢幕快照。

    重新載入的儲存格現在應該顯示綠色。

將應用程式部署至 JBoss EAP 叢集

使用下列步驟將 JavaEE Cafe 範例應用程式部署至 Red Hat JBoss EAP 叢集:

  1. 使用下列步驟來建置 Java EE Cafe 範例。 這些步驟假設您已安裝 Git 和 Maven 的本機環境。

    1. 使用下列命令從 GitHub 複製原始程式碼,並檢出與這個版本文章相對應的標籤。

      git clone https://github.com/Azure/rhel-jboss-templates.git --branch 20240904 --single-branch
      

      如果您看到含有文字的錯誤訊息 You are in 'detached HEAD' state,您可以放心地忽略它。

    2. 使用下列命令來建置原始碼:

      mvn clean install --file rhel-jboss-templates/eap-coffee-app/pom.xml
      

      此命令會建立檔案 rhel-jboss-templates/eap-coffee-app/target/javaee-cafe.war。 您會在下一個步驟中上傳此檔案。

  1. 使用 Red Hat JBoss Enterprise Application Platform 管理控制台中的下列步驟,將 javaee-café.war 上傳至 內容存放庫

    1. 從 Red Hat JBoss EAP 管理控制台的 [部署] 索引標籤中,選取導覽面板中 內容存放庫

    2. 選取 [新增],然後選取 [上傳內容]。

      [JBoss EAP 管理控制台部署標籤頁] 的螢幕快照,其中已醒目提示 [上傳內容] 功能表項。

    3. 使用瀏覽器檔案選擇器來選取 javaee-cafe.war 檔案。

    4. 選取 下一步

    5. 接受下一個畫面上的預設值,然後選取 [完成]

    6. 選取 檢視內容

  2. 使用下列步驟將應用程式部署至 main-server-group

    1. 內容存放庫中,選取 [javaee-café.war ]。

    2. 開啟下拉選單,然後選取 部署

    3. 選取 [main-server-group],作為部署 javaee-café.war 的伺服器群組

    4. 選取 部署 以啟動部署。 您應該會看到類似下列螢幕快照的通知:

      成功部署通知的螢幕快照。

您現在已完成部署 JavaEE 應用程式。 使用下列步驟來存取應用程式並驗證所有設定:

  1. 在 Azure 入口網站頂端的搜尋方塊中,輸入 資源群組,然後在搜尋結果中選取 資源群組

  2. 選取資源群組名稱,例如,jboss-eap-cluster-eastus-gzh032124

  3. 選取資源群組中的應用程式網關資源。

  4. 從[總覽]窗格中複製前端公用IP位址

  5. 使用 IP 位址和路徑建構 URL,例如,http://40.88.26.22/javaee-cafe

  6. 將 URL 貼到網頁瀏覽器導覽列中,然後按 Enter。 您應該會看到 JavaEE Cafe 應用程式首頁。

  7. 創造兩款不同名稱和價格的咖啡。 您應該會在下列螢幕快照中看到類似頁面:

    JavaEE Cafe 應用程式首頁的螢幕快照。

在 Azure VM 上設定次要 JBoss EAP 叢集

部署次要 JBoss EAP 叢集

請遵循 部署主要 JBoss EAP 叢集 中的步驟,在配對區域中部署次要 JBoss EAP 叢集。 此範例使用美國西部 2。 當您使用這項優惠時,次要 JBoss EAP 叢集會被設定,讓您可以使用 Azure Site Recovery 以還原拓撲結構。

在瀏覽器中開啟 JBoss EAP 叢集的 VM 方案,然後選取 [建立]。 您應該會看到優惠的 [基本] 窗格。

使用下列步驟填寫 [基本] 窗格:

  1. 在 [資源群組] 欄位中,選取 [建立新的],然後填入資源群組的唯一值,例如 jboss-eap-cluster-westus-gzh032124

  2. 在 [實例詳細數據] 下,針對 [區域],選擇 [美國西部 2]。

  3. 讓其他部分與主要叢集保持一致。

針對 [JBoss EAP 設定] 窗格,請將它與主要叢集保持相同。

針對 [Azure 應用程式閘道] 窗格,請將它與主要叢集保持相同。

針對 [網络] 窗格,開啟 [虛擬網络] 設定並輸入位址空間,這與主要叢集的值相同。

次要叢集的螢幕快照顯示 [網路] 窗格。

針對 [資料庫] 窗格使用下列步驟:

  1. 保持與主要叢集相同的狀態。
  2. 選擇 檢閱 + 建立
  3. 等到 完成最終驗證... 成功後,然後選取 建立

一段時間後,您應該會看到 [部署] 頁面,其中顯示 部署正在進行中

清除次要區域中未使用的資源

使用下列步驟來清除名為 jboss-eap-cluster-westus-gzh032124 的資源群組中未使用且稍後將由主要區域中的 Azure Site Recovery 服務複寫的資源。 這種方法似乎浪費了,但可確保次要資源群組與主要資源群組具有相同的組態。 生產等級解決方案會使用更多基礎結構即程式代碼技術來確保相同的設定,但超出本文的範圍。

  1. 在 Azure 入口網站頂端的搜尋方塊中,輸入 資源群組,然後在搜尋結果中選取 [資源群組]。

  2. 選取新建立次要區域的資源組名。

  3. 在標示為 篩選任何字段的文字區域旁...,選取 X 以移除所有篩選條件。

  4. 選取 新增篩選。 將 Filter 設定為 Type。 將 運算子 設定為 等於

  5. 選取旁的下拉選單。

  6. 切換 「選取所有」 複選框,重複此動作直到未選取任何值為止。

  7. 確定已選取下列所有類型:

    • 虛擬機
    • 磁碟
    • 私人端點
    • 網路介面
    • 儲存帳戶
  8. 選取欄位 旁的下拉功能表以便關閉下拉功能表。 您必須將 5 個資源類型視為 Value的值。

  9. 選取 ,套用

  10. 在篩選清單頂端,選取標籤 名稱 旁的複選框。

  11. 選擇 刪除

  12. 輸入 刪除 以確認刪除,然後選取 [刪除] [刪除]。 在通知中監視程序直至完成。

使用 Azure Site Recovery 設定叢集的災害復原

在本節中,您會依照 教學課程:設定 Azure VM 災害復原中的步驟,使用 Azure Site Recovery 為主要叢集中的 Azure VM 設定災害復原。 您只需要下列各節:建立復原服務儲存庫啟用複寫。 當您完成本文時,請注意下列步驟,然後在主要叢集受到保護之後返回本文:

  1. 當您建立復原服務保存庫一節時,請使用下列步驟:

    1. 資源群組的步驟 5 中,在訂用帳戶中建立具有唯一名稱的新資源群組,例如,recovery-service-westus-gzh032124

    2. 儲存庫名稱的步驟 6 中,提供儲存庫名稱,例如,recovery-service-vault-westus-gzh032124

    3. Region的步驟 7 中,選取 [美國西部 2]。

    4. 在步驟 8 中點選 [檢閱 + 建立] 之前,請先選擇 [下一步:備援]。 在 [備援] 窗格中,選取 [異地備援] 作為 [備份記憶體備援],然後選取 啟用 [跨區域還原]。

      注意

      請務必選取 [備份記憶體備援 的異地備援],然後在 [備援] 窗格中選取 [跨區域還原 啟用]。 否則,主要叢集的記憶體無法復寫到次要區域。

    5. 要啟用 Site Recovery,請依照第 節中的步驟進行。

  2. 當您到達啟用複製部分時,請使用下列步驟:

    1. 使用下列步驟來選取來源設定:

      1. 針對 區域,選擇 美國東部

      2. 針對 資源群組,選取部署主要叢集的資源,例如 jboss-eap-cluster-eastus-gzh032124

        注意

        如果未列出所需的資源群組,您可以先選取 美國西部 2區域,然後再切換回 美國東部

      3. 保留其他欄位的預設值

    2. 選取 VM。 在 虛擬機中,選取列出的所有 VM,例如,本教學課程主要叢集中部署了 3 部 VM。

    3. 當您檢閱複寫設定時,請使用下列步驟:

      1. 針對 [目標位置],選取 [美國西部 2]。

      2. 針對 目標資源群組,選取部署服務復原保存庫的資源群組,例如 jboss-eap-cluster-westus-gzh032124

        如果未顯示預期的資源群組,請選擇另一個區域,然後傳回 美國西部 2

      3. 記下新的故障轉移虛擬網路和故障轉移子網,這些是從主要區域的虛擬網路和子網對應而來的。

      4. 保留其他欄位的預設值。

    4. 使用下列步驟來管理

      1. 針對 複寫策略,請使用預設原則 24 小時保留原則。 您也可以為您的企業建立新的原則。

      2. 保留其他欄位的預設值。

    5. 使用下列步驟進行 檢閱

      1. 選取 [啟用復寫]之後,請注意頁面底部顯示的 [正在建立 Azure 資源] 訊息。請勿關閉此刀鋒視窗。 不執行任何動作,並等到窗格自動關閉為止。 系統會將您重新導向至 Site Recovery 頁面。

      2. 受保護的項目下,選取 複寫的項目。 一開始,沒有列出任何項目,因為複製仍在進行中。 這個教學課程的複製需要一些時間才能完成,大約 1 小時。 定期重新整理頁面,直到您看到所有虛擬機都是Protected,如下列螢幕快照所示:

        Azure 入口網站的螢幕快照,其中顯示被復寫和被保護的虛擬機清單。

接下來,建立復原計劃以包含所有復寫的項目,以方便在故障轉移時同時移轉。 使用 建立復原方案中的指示,並進行以下自訂設定:

  1. 在步驟 2 中,輸入方案的名稱,例如,recovery-plan-gzh032124
  2. 在步驟 3 中,選取 [美國東部] 為 [來源],選取 [美國西部 2] 為 [目標]。
  3. 在步驟 4 中,為 選取項目時,選取所有受保護的項目 - 例如,這個教學課程中的 3 個受保護的 VM。

請保持頁面打開,以便稍後用來測試故障轉移。

設定 Azure 流量管理員

在本節中,您會建立一個 Azure 流量管理員,以將流量分散到整個 Azure 區域的公用應用程式。 主要端點會指向主要區域中應用程式閘道的公用IP位址,而次要端點會指向次要區域中應用程式閘道的公用IP位址。

依照 快速入門中的指示建立 Azure 流量管理員配置檔:使用 Azure 入口網站建立流量管理員配置檔。 您只需要下列各節:建立流量管理員配置檔新增流量管理員端點。 當您瀏覽這些區段時,請使用下列步驟,然後在建立並設定 Azure 流量管理員之後返回本文。

  1. 當您到達 建立流量管理員設定檔案的部分時,請在步驟 2 建立流量管理員設定檔案中使用以下步驟:

    1. 記下 Name 的唯一流量管理員設定檔名稱 ,例如,tm-profile-gzh032124
    2. 記下 資源群組 的新資源群組名稱,例如,myResourceGroupTM1
  2. 當您到達 新增流量管理員端點一節時,請使用下列步驟:

    1. 在步驟 2 中開啟流量管理員配置檔之後,請在 [設定] 頁面中,使用下列步驟:

      1. 若要讓 DNS 存活時間(TTL),請輸入 10

      2. 在 [快速端點故障轉移設定底下,使用下列值:

        • 針對 [探查內部],選取 [10]。
        • 針對 容許的失敗數目,輸入 3
        • 針對 探查逾時5
      3. 選取 [儲存]。 請等到完成為止。

    2. 在新增主要端點 myPrimaryEndpoint的步驟 4 中,請使用下列步驟:

      1. 針對 [目標資源類型],選取 [公用IP 位址]

      2. 選取 [選擇公用IP 位址] 下拉式清單,然後輸入 美國東部 區域中應用程式網關的公用IP位址名稱。 您應該會看到一個項目相符。 選取 公用 IP 位址

    3. 在新增故障轉移次要端點的步驟 6 myFailoverEndpoint中,請使用下列步驟:

      1. 針對 [目標資源類型],選取 [公用IP 位址]

      2. 選取 [選擇公用 IP 位址] 下拉式清單,然後在 美國西部 2 區域輸入應用程式閘道的公用 IP 位址名稱。 您應該會看到一個條目匹配。 選取 公用IP位址

    4. 請稍候一段時間。 選取 [重新整理],直到端點 myPrimaryEndpoint 的 [監視狀態][在線],[myFailoverEndpoint 的 [監視] 狀態[降級]。

接下來,使用下列步驟來確認部署至主要 JBoss EAP 叢集的範例應用程式可以從流量管理員設定檔存取:

  1. 選取您所建立的 Traffic Manager 配置檔的 概觀

  2. 檢查並複製流量管理員配置檔的 DNS 名稱。 將 /javaee-café/ 附加至其中。 例如,http://tm-profile-gzh032124.trafficmanager.net/javaee-cafe/

  3. 在瀏覽器的新索引標籤開啟 URL。 您應該會看到您之前建立的咖啡出現在頁面上。

    範例應用程式 UI 的螢幕快照。

如果您的使用者介面看起來不相似,請在繼續之前先進行疑難排解並解決問題。 讓主控台保持開啟,並在稍後使用它進行故障轉移測試。

現在您可以設定流量管理員配置檔。 讓頁面保持開啟狀態,以便稍後在故障轉移事件中監視端點狀態變更。

測試從主要系統切換到次要備援系統

本節中的步驟旨在測試故障轉移,方法是透過 Azure 入口網站,將您的 Azure SQL Database 伺服器和叢集從主要伺服器手動切換到次要伺服器,然後再手動切換回主要伺服器。

故障轉移至次要月臺

首先,使用下列步驟將 Azure SQL Database 從主伺服器切換至次要伺服器:

  1. 切換至 Azure SQL Database 故障轉移群組的瀏覽器索引標籤,例如,failovergroup-gzh032124
  2. 選取 [故障轉移]>[是]
  3. 等到它完成。

接下來,按照下列步驟,利用復原方案進行 JBoss EAP 叢集的故障轉移:

  1. 在 Azure 入口網站頂端的搜尋方塊中,輸入 復原服務保存庫,然後選取搜尋結果中 復原服務保存庫

  2. 選取復原服務儲存庫的名稱,例如,recovery-service-vault-westus-gzh032124

  3. 在 [管理] 下,選取 [復原方案(站點復原)]。 選取您建立的復原計畫,例如,recovery-plan-gzh032124

  4. 選取 [故障轉移]。 選取 [我了解風險]。略過測試故障轉移。。 保留其他值的預設值。 選取 [確定]

    注意

    您可以選擇性地先執行 測試故障轉移清除測試故障轉移,以確保一切如預期般運作,然後再進行 故障轉移。 如需詳細資訊,請參閱 教學課程:針對 Azure VM 執行災害復原演練。 本教學課程會直接使用 故障轉移 來簡化練習。

  5. 請持續監控通知中的故障轉移,直到完成。 本教學課程的練習大約需要 10 分鐘的時間。

執行故障轉移

請確定上一節中的步驟已順利完成。 然後,使用下列步驟來認可故障轉移:

  1. 在 Azure 入口網站頂端的搜尋方塊中,輸入 復原服務保存庫,然後從搜尋結果中選取它。

  2. 選擇您的復原服務儲存庫 ─例如,recovery-service-vault-westus-gzh032124

  3. 在 [管理] 區段底下,選取 [復原方案 (Site Recovery)]。

  4. 選取復原方案 ─例如,recovery-plan-gzh032124

  5. 選取 [提交],然後選擇 [確定]。

  6. 監視通知,直到程序完成為止。

    故障轉移提交已完成的截圖。

  7. 選取復原計劃中 項目。 您應該會看到 3 個項目列為 故障轉移已提交

停用複寫

使用下列步驟來停用復原計劃中項目的複寫,以及刪除復原計劃:

  1. 針對復原方案中 專案中的每個專案,以滑鼠右鍵按兩下專案,然後選取 [停用複寫]
  2. 如果系統提示您提供停用此虛擬機保護的原因,請選擇您偏好的其中一項,例如,我已完成將應用程式移轉。 選取 [確定]
  3. 重複步驟 1,直到您停用所有項目的複寫為止。
  4. 監視通知中的過程,直到完成為止。
  5. 選擇 概觀>刪除。 選取 以確認刪除。

重新保護故障轉移網站

現在次要區域(備援區域)是故障轉移站點且已啟動,您應該在主要區域中進行重新保護。

首先,清除名為 jboss-eap-cluster-eastus-gzh032124 的資源群組中不再使用的資源。

  1. 在 Azure 入口網站頂端的搜尋方塊中,輸入 資源群組,然後在搜尋結果中選取 [資源群組]。

  2. 選取新建立次要區域的資源組名。

  3. 在標示為 篩選任何字段的文字區域旁...,選取 X 以移除所有篩選條件。

  4. 選取 [新增篩選]。 將 Filter 設定為 Type。 將 運算子 設定為 等於

  5. 請選擇欄位 旁的下拉選單。

  6. 切換 選取所有 複選框,直到沒有任何值被選取。

  7. 確定已選取下列所有類型:

    • 虛擬機
    • 磁碟
    • 私人端點
    • 網路介面
    • 儲存體帳戶
  8. 選取欄位 [值] 旁的下拉功能表,以便關閉下拉式清單。 您必須將 5 個資源類型視為 Value的值。

  9. 選取套用

  10. 選取篩選清單頂端,標籤「名稱」旁的複選框

  11. 選擇 刪除

  12. 輸入 刪除 以確認刪除,然後選取 [刪除] [刪除]。 監控通知中的進程,直到完成。

接下來,使用主要區域中的 Azure Site Recovery,在 設定叢集災害復原中的相同步驟,但有下列差異:

  1. 針對 建立復原服務保存庫,請使用下列步驟:

    1. 選取主要區域中部署的資源群組,例如,jboss-eap-cluster-eastus-gzh032124
    2. 輸入服務儲存庫的不同名稱,例如,recovery-service-vault-eastus-gzh032124
    3. 選擇 美國東部 以用於 區域
  2. 針對 啟用複製,請使用下列步驟:

    1. 針對 [Source] 中的 區域,選取 [美國西部 2]。

    2. 複寫設定中,使用下列步驟:

      1. 針對 目標資源群組,選取部署在主要區域中的現有資源群組,例如,jboss-eap-cluster-eastus-gzh032124

      2. 針對 [故障轉移虛擬網路],選取主要區域中的現有虛擬網路。

  3. 針對 [建立復原方案],針對 [來源],選取 [美國西部 2],然後選取 [目標],選取 [美國東部]。

注意

您可能會注意到,當目標 VM 存在時,Azure Site Recovery 支援重新保護 VM。 如需詳細資訊,請參閱 教學課程:將 Azure VM 故障轉移至次要區域重新保護 VM 一節。 不過,當來源磁碟與目標磁碟之間唯一的變更是為 JBoss EAP 叢集同步時,根據驗證結果,它無法運作。 本教學課程會在故障轉移後,建立從次要站點到主要站點的新複製,其中會將整個磁碟內容從故障後備援區域複製到主要區域。 如需詳細資訊,請參閱 重新保護期間會發生什麼事?將故障轉移的 Azure 虛擬機重新保護至主要區域

回復至主要站點

使用故障轉移至次要站點 一節中的相同步驟,將主要站點故障回復(包括資料庫伺服器和叢集),但有以下不同:

  1. 選取主要區域中部署的復原服務保存庫,例如,recovery-service-vault-eastus-gzh032124

  2. 選取主要區域中部署的資源群組,例如,jboss-eap-cluster-eastus-gzh032124

  3. [認可故障轉移] 區段中,選取部署在主要區域的復原服務保存庫,例如 recovery-service-vault-eastus-gzh032124

  4. 在流量管理員配置檔中,您應該會看到端點 myPrimaryEndpoint 變成 Online,而端點 myFailoverEndpoint 變成 降級

  5. 重新保護故障轉移網站一節中,使用下列步驟:

    1. 主要區域是故障轉移網站且作用中,因此您應該在次要區域中重新保護它。

    2. 清除部署在次要區域中的資源,例如,部署在 jboss-eap-cluster-westus-gzh032124中的資源。

    3. 使用 使用 Azure Site Recovery 為叢集設定災害復原中的相同步驟, 來保護次要區域中的主要區域,但下列步驟除外:

      1. 請略過 建立復原服務儲存庫 中的步驟,因為您已經建立復原服務保存庫,例如 recovery-service-vault-westus-gzh032124

      2. 針對 [啟用複寫>複寫設定>故障轉移虛擬網路],請選取次要區域中的現有虛擬網路。

清除資源

如果您不打算繼續使用 JBoss EAP 叢集和其他元件,請使用下列步驟來刪除資源群組,以清除本教學課程中使用的資源:

  1. 在 Azure 入口網站頂端的搜尋方塊中,輸入 Azure SQL Database 伺服器的資源組名,例如 sqlserver-rg-gzh032124。 然後,從搜尋結果中選取相符的資源群組。

  2. 選擇 [刪除資源群組]

  3. 針對 輸入資源組名以確認刪除,請輸入資源組名。

  4. 選擇 ,刪除

  5. 針對流量管理員的資源群組重複步驟 1-4 ,例如,myResourceGroupTM1

  6. 在 Azure 入口網站頂端的搜尋方塊中,輸入 復原服務保存庫,然後在搜尋結果中選取 復原服務保存庫

  7. 選取復原服務儲存庫的名稱,例如,recovery-service-vault-westus-gzh032124

  8. 在 [管理] 下,選取 [復原計畫 (網站復原)]。 選取您建立的復原計畫,例如,recovery-plan-gzh032124

  9. 使用 停用複寫 一節中的相同步驟,移除複寫項目的鎖定。

  10. 針對主要 JBoss EAP 叢集的資源群組重複步驟 1-4 ,例如,jboss-eap-cluster-westus-gzh032124

  11. 針對次要 JBoss EAP 叢集的資源群組重複步驟 1-4 ,例如,jboss-eap-cluster-eastus-gzh032124

後續步驟

在本教學課程中,您會設定HA/DR解決方案,其中包含具有主動-被動資料庫層的主動-被動應用程式基礎結構層,而這兩個層級分布於兩個不同地理位置的地點。 在第一個站台中,應用程式基礎結構層和資料庫層都處於作用中狀態。 在第二個站點,次域使用 Azure Site Recovery 服務進行還原,而輔助資料庫則處於待命狀態。

繼續探索下列參考,以取得更多選項來建置 HA/DR 解決方案,並在 Azure 上執行 JBoss EAP: