BizTalk Server 为解决高可用性提供了极大的灵活性,因为你可以战略性地将逻辑主机专用于运行功能的特定领域,例如接收消息、发送消息或处理业务流程。
BizTalk 主机是 BizTalk Server 组中的逻辑容器,可以容纳 BizTalk Server 项,例如适配器处理程序、接收位置(包括管道)和业务流程。 通常,将具有类似缩放要求的项分组到特定的主机中。 例如,将接收位置分组到“接收”主机、将端口发送到“发送”主机,并将业务流程分组到“处理”主机中。
创建主机(逻辑容器)后,可以将主机的实例配置为在 BizTalk Server 组中的物理 BizTalk Server 计算机上运行。 主机实例作为 Windows 服务在指定的 BizTalk Server 计算机上运行。 尽管无法在给定的 BizTalk Server 计算机上运行同一主机的多个实例,但可以通过在 BizTalk Server 组中的单独 BizTalk Server 计算机上配置主机实例来运行特定主机的多个实例。 还可以在单个 BizTalk Server 计算机上运行不同主机的多个实例。
BizTalk 主机中包含的项可以执行以下功能:
接收 这些组件在接收位置获取消息后执行初始处理。 当主机包含接收项(如接收位置或管道)时,它充当安全边界,消息解码和解密发生在主机内的管道中。
发送 这些项目在发送到发送端口之前对消息执行最终处理。 当主机包含发送项(如发送端口或管道)时,主机充当安全边界,并且消息签名和加密发生在主机内的管道中。
处理 这些项根据编排中的说明处理消息。
尽管单个 BizTalk 主机可以包含接收、发送和处理消息的项,但最佳做法是为每个函数创建不同的主机来创建安全边界,从而简化管理和可伸缩性。 特别是,我们建议使用不同的主机来处理和接收/发送作,以及将受信任和非受信任的项目分开。
例如,如果收到一条消息、运行业务流程并发送十条消息,则需要将接收和发送功能分成两个单独的主机,因为发送项的流量将比接收项多 10 倍。 如果收到一条消息、运行业务流程并发送一条消息,可以将这些项目视为一个工作单元,并将其分组到一个主机中。 或者,可以将它们分成三个不同的主机,以提高性能和灵活性。
BizTalk 主机是两种类型之一,进程内类型 或 独立类型。 进程内主机在 BizTalk Server 运行时进程中运行,而独立主机不会在 BizTalk Server 运行时进程中运行。 下表列出了其中每个主机类型可能包含的项。
主机类型 | 用于的逻辑容器 |
---|---|
In-Process | - 编排 - 适配器发送处理器 - 除 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 将数据与处理数据的主机分开,因此创建高度可用的环境的一个步骤是将 BizTalk Server 中发生的主机函数(发送、接收和处理)与 SQL Server 中发生的数据库函数分开。 通过分离这些函数,可以独立缩放处理、发送和接收主机以及存储数据的数据库。 运行时层和数据库层相关,也就是说,如果增加 BizTalk Server 计算机数,则可能需要增加运行 SQL Server 的计算机数来处理额外的负载。 但是,数据库层与 BizTalk 层之间没有直接关系。 它们是两个独立的层,可以单独横向扩展。
若要使主机高度可用,必须执行的操作与使数据库高度可用所需的操作不同。 以下部分介绍了如何使接收、发送和处理主机高度可用。 有关如何使数据库层高度可用的详细信息,请参阅 为 BizTalk Server 数据库提供高可用性。
对于 BizTalk Server 处理多个 SQL Server 进程的部署,可以配置使用运行 SQL Server 的同一台计算机的多个 BizTalk Server 计算机。 此配置使用每台计算机上可用的资源。 例如,如果在 BizTalk Server 计算机上 CPU 或内存使用率较高(超过 75%),但在运行 SQL Server 的计算机上运行低(小于 25%),则可以包括其他 BizTalk Server 计算机来分发工作负荷,同时提高运行 SQL Server 的计算机上的资源利用率。