横向扩展接收主机

若要使接收主机高度可用,必须有两台或更多BizTalk Server运行每个接收主机实例的计算机。 通过横向扩展接收主机,可以增加消息传送密集型BizTalk Server部署的可用性。 尽管这些部署可能很少处理业务流程,但仍可快速和可靠地路由许多不同类型的消息。

通过将接收主机与处理业务流程和发送消息的主机分隔开来,您可增强您的环境的安全性和可伸缩性,因为可以独立于其他主机来保护和扩展每个主机。 例如,您可以将两台计算机(主机实例)添加到接收主机,而无需向处理主机或发送主机添加任何计算机。

了解In-Process和隔离接收主机

BizTalk Server集成应用程序以提供业务服务。 集成通常表示为BizTalk Server从应用程序) 接收文档 (,处理文档,并将处理的文档发送回应用程序或其他应用程序。 此过程称为文档事务。

事务通常以监视特定协议通道和接收文档的 BizTalk 适配器开始。 之所以调用适配器,是因为它将其他应用程序连接到BizTalk Server。 根据函数,它可以是发送适配器或接收适配器。 大多数默认适配器都是一个 .NET 组件,其中包含接收函数和内置于一个 .NET 程序集中的发送函数。 根据适配器所在的进程内存空间,它是进程内 (接收) 适配器或独立 (接收) 适配器。 进程内适配器只能由BizTalk Server进程 (BTSNTSvc.exe) 承载,独立适配器设计为由另一个进程托管。 例如,HTTP 适配器和 SOAP 适配器由 Internet Information Services (IIS) 进程托管。 它们本质上是 ISAPI 扩展。 另一方面,所有发送适配器都是进程内适配器。

BizTalk Server配置创建两个默认主机-进程内主机称为 BizTalkServerApplication,独立主机称为 BizTalkServerIsolatedHost。 主机提供两个函数:一个函数在逻辑上对BizTalk Server项进行分组,以便将这些项分配给不同的BizTalk Server进程,另一个是控制安全性。 需要为主机指定Windows组。 只有此组中的用户才能将文档发送到分配给此主机 的主机实例托管的 适配器。

这两个默认主机中的每个主机都有一个主机实例。 主机实例没有名称,但与主机关联。 BizTalkServerApplication 主机实例实际上是 BizTalk 组中BizTalk Server计算机上的BizTalk Server服务进程 (BTSNTSvc.exe) 。 BizTalkServerIsolatedHost 主机实例不直接绑定到进程。 它与承载接收适配器的进程相关联。

BizTalk Server配置还会为每个默认适配器创建接收处理程序,但 SMTP (SMTP 除外是发送适配器) 。 接收处理程序属性之一是主机名。 这就是它绑定到该主机的主机和主机实例的方式。

除了适配器、主机、主机实例和接收处理程序外,还需要在BizTalk Server开始接收文档之前配置接收端口。 接收端口包含接收位置。 接收位置具有接收处理程序属性。 按照逻辑,可以跟踪处理此接收端口的BizTalk Server进程。

在接收端口配置中,可以选择指定映射。 在接收位置配置中,必须指定用于文档预处理的管道。 指定的BizTalk Server进程处理从接收文档到预处理文档到映射文档的所有内容。 对于进程内主机实例和独立主机实例,这都是相同的。

横向扩展In-Process接收主机

下图显示了一个BizTalk Server部署,该部署通过在不同的计算机上具有两个主机实例,为接收主机提供高可用性。 请注意,在此图中,处理和发送主机并非高度可用,因为只有一个主机实例处理分配给主机的 BizTalk 项。

Multiple Host for Receiving Messages

在进行大型部署、与多个贸易合作伙伴打交道以及使用不同的协议时,您可以采用多个接收主机来分担接收功能。 例如,您可以创建一个主机来接收每个适配器的消息,也可以创建不同主机来接收来自不同合作伙伴的消息。 在创建多个接收主机后,您可以创建安全边界来提高您的环境的可管理性和可伸缩性;但是,这并不能确保环境高度可用。 为确保环境高度可用,您必须为创建的每个接收主机创建两个或更多主机实例。 例如,可以创建三个不同的接收主机, (A、B 和 C) 接收来自三个不同的公司的消息。 为确保所有这些主机高度可用,随后还需要在两台或更多计算机中创建所有这些主机的实例。 请注意,您可以在一台计算机上创建每个主机的实例,而不会影响安全边界、可管理性或可伸缩性。

下图显示了具有三台计算机的高度可用的 BizTalk Server 环境(其中不同的主机专用于接收来自不同公司的消息):

Scaling out receive hosts

为确保此配置的高可用性,每台计算机都运行三个主机实例:三家公司中的每一个家都对应一个实例。 每家公司的主机实例都包含用来与该公司进行通信的接收位置和管道。 在典型操作期间,只要在接收适配器前面完成横向扩展所需的工作,消息传送负载将分布在每个主机的三个主机实例之间。 如果一台计算机上的主机实例失败,则在其他两台计算机上运行的主机实例将提供冗余,以保持服务可用。

横向扩展独立接收主机

除了主机实例,缩放和为接收主机提供高可用性的过程还取决于你在部署中实现的特定适配器。 每个适配器都具有与协议有关的特性,所以在协议不同的情况下规划和部署也会有所不同。 但是,BizTalk Server允许对所有适配器应用相同的高可用性解决方案,主要是通过其他计算机和主机实例。

根据所用的具体协议,某些接收适配器需要采用在多台主机计算机中分布传入消息的附加机制,才能确保高可用性。 例如,BizTalk Server使用 HTTP 或 SOAP 适配器的解决方案 (否则称为 Web 服务适配器) 需要负载均衡器(例如网络负载均衡 (NLB) )来分发接收工作负荷,如下图所示。

Scaling out isolated receive host

有关BizTalk Server中最常见适配器的高可用性准则的详细信息,请参阅BizTalk Server帮助中横向扩展接收主机 (https://go.microsoft.com/fwlink/?LinkId=151283) 的“缩放BizTalk Server接收适配器”部分。

另请参阅

群集接收主机,横向扩展处理主机,横向扩展发送主机