共用方式為


為 BizTalk 主控件提供高可用性

BizTalk Server提供解決高可用性的絕佳彈性,因為您可以策略性地專用邏輯主機來執行特定功能區域,例如接收訊息、傳送訊息或處理協調流程。

BizTalk 主控件是 BizTalk Server 群組中的邏輯容器,可儲存 BizTalk Server 的項目,例如,配接器處理常式、接收位置 (包括管線),以及協調流程。 您通常會將具有相似擴充需求的項目群組到特定的主控件中。 例如,您會將接收位置群組到「接收」主控件中、將傳送埠群組到「傳送」主控件中,以及將協調流程群組到「處理」主控件中。

建立主機 (邏輯容器) 之後,您可以將主機的實例設定為在BizTalk Server群組中的實體BizTalk Server電腦上執行。 主機實例會在指定的BizTalk Server電腦上以 Windows 服務的形式執行, () 。 雖然無法在指定的BizTalk Server電腦上執行相同主機的多個實例,但您可以在BizTalk Server群組的個別BizTalk Server電腦上設定主機實例,以執行特定主機的多個實例。 您也可以在單一BizTalk Server電腦上執行不同主機的多個實例。

BizTalk 主控件中所包含的項目可執行以下功能:

  • 接收 這些專案會在接收位置中挑選訊息之後,進行訊息的初始處理。 當主控件包含接收項目時 (例如接收位置或管線),它將做為安全範圍,而訊息解碼和解密都發生在主控件的管線中。

  • 發送 這些專案會在傳送至傳送埠之前,先進行訊息的最終處理。 當主控件包含傳送項目時 (例如,傳送埠或管線),主控件將做為安全範圍,而訊息簽章和加密都發生在主控件的管線中。

  • 處理 這些專案會根據協調流程中的指示來處理訊息。

    雖然單一 BizTalk 主機可以包含接收、傳送和處理訊息的專案,但最佳做法是為每個函式建立不同的主機,以建立安全性界限,並方便管理和延展性。 尤其,建議您使用不同的主控件來進行處理、接收/傳送作業,並將信任和非信任的項目分開。

    例如,若您接收一個訊息、執行協調流程,並傳送十個訊息,您要將接收和傳送功能分成兩個獨立的主控件,因為傳送項目將會比接收項目多出十倍的流量。 若您接收一個訊息、執行協調流程,並傳送一個訊息,您可以將這些項目視為一個工作單位並將它們群組為單一主控件。 或者,您可以將這些作業分散到三個不同的主控件中,以提高效能和彈性。

    BizTalk 主機是兩種類型之一:進程內或隔離。 同進程主機會在BizTalk Server執行時間進程中執行,而隔離主機不會在BizTalk Server執行時間進程中執行。 下表列出每個主控件類型可能包含的項目。

主機類型 邏輯容器
內含式 - 協調流程
- 配接器傳送處理常式
- HTTP 和 SOAP 以外的配接器接收處理常式
隔離式方案 HTTP 和 SOAP 接收處理常式

如需主機和主機實例的詳細資訊,請參閱 管理 BizTalk 主機和主機實例

若要為 BizTalk 主機提供高可用性,您的環境中每個主機都必須有兩個以上的主機實例, (兩部或多部BizTalk Server電腦上) 。 讓每個主控件均有不只一個主控件執行個體,可確保萬一某個主控件執行個體變得無法使用,其他執行該主控件之執行個體的電腦可以繼續提供有問題或失敗之主控件執行個體的功能,而使整個系統可以在最少中斷的情況下持續運作。

訊息保存

BizTalk Server高度依賴SQL Server以提供高可用性,因為涉及BizTalk Server的每個主機都會將訊息保存到 BizTalk MessageBox 資料庫。 例如,當BizTalk Server收到傳入訊息時,接收主機會先將它保存到 MessageBox 資料庫,然後其他主機才會擷取訊息以進行協調流程處理和傳送。

若您的 BizTalk Server 方案包含協調流程,則 BizTalk Server 會將訊息路由至執行商務程序 (處理主控件) 的主控件,並在完成協調流程後,將訊息儲存到 MessageBox 資料庫。 傳送主控件接著會從 MessageBox 資料庫擷取訊息,再透過適當的傳送配接器將它傳送到外部應用程式。

分隔主控件與資料庫功能

由於BizTalk Server會將資料與處理資料的主機分開,因此建立高可用性環境的一個步驟是將主機函式 (傳送、接收和處理) 與SQL Server中發生的資料庫函式BizTalk Server分開。 藉由分開這些功能,您可以針對處理主控件、傳送主控件、接收主控件和用於儲存資料的資料庫分開進行擴充。 執行時間和資料庫層相關,也就是說,如果您增加BizTalk Server電腦數目,您可能需要增加執行SQL Server的電腦數目來處理額外的負載。 不過,資料庫層與 BizTalk 層之間沒有直接的關係。 它們是兩個獨立層,您可以個別將它們向外擴充。

要讓主控件高度可用所需做的事與讓資料庫高度可用所需做的事是不同的。 下節說明您要讓接收、傳送和處理主控件高度可用所需做的事。 如需如何讓資料庫層具有高可用性的詳細資訊,請參閱為BizTalk Server資料庫提供高可用性

針對 BizTalk Server 程序多於 SQL Server 程序的部署,您可以將多部 BizTalk Server 電腦設定為使用執行 SQL Server 的相同電腦。 此組態使用每部電腦上可用的資源。 例如,若 CPU 或記憶體使用率在 BizTalk Server 電腦上很高 (超過 75%),但是在執行 SQL Server 的電腦上很低 (低於 25%),則可以將其他 BizTalk Server 電腦納入以分散工作負載,並提升執行 SQL Server 的電腦的資源使用率。

本節內容

另請參閱

為 BizTalk Server 資料庫提供高可用性
企業單一登入的高可用性