BizTalk 简介

BizTalk Server是微软的集成和服务器连接的解决方案。BizTalk Server 已经有了六个发布版本,是个成熟的产品,提供了企业更容易地连接分离系统的解决方案。包含有超过25个多平台的适配器和强大消息基础架构。BizTalk Server 提供在企业内部以及企业外部的核心系统之间的连接。

BizTalk Server的主要用途是B2BEAI,是微软为SOA的提供的企业级解决方案的核心产品。

BizTalk Server是企业级的解决方案,在部署方面提供了极大的伸缩性和灵活性,可以极小规模的部署,也可以很大规模的部署,并为企业级应用提供足够的高可用性。

 

Biztalk作为企业应用集成的交换中枢,通常都处于比较关键的地位,对其可靠性要求都会比较高,所以对biztalk系统的高可用性都会有要求。

 

biztalk group 

group biztalk的一个重要的概念。所有biztalk server都加入到同一个group,一个group共享一套相关的数据库。下面两个是最基本的数据库:

l  biztalk管理数据库 - BizTalkMgmtDb

保存biztalk group的静态特性,比如这个group包含哪些服务器,包含哪些Host,各个服务器跟Host之间的映射关系。有哪些Application,所有的orchestration、接收端口和位置、发送端口。

l  biztalk messagebox数据库 - BizTalkMsgBoxDb

保存biztalk group中的各个Application中的消息订阅关系,正在运行的服务实例,正在被运行中服务实例使用中的消息,挂起的服务实例。

 

在安装完第一台biztalk server后,需要对biztalk进行配置,配置时选择建立新的biztalk group,这时配置过程会建立这套biztalk数据库和相应的biztalk服务。

安装后续的biztalk server后,同样要进行配置,配置时选择加入现有的biztalk group,并将数据存储指向第一台配置的biztalk group时建立的biztalk数据库。

这样,所有的biztalk server都加入到同一个biztalk group,结合biztalkhostcluster机制,这些biztalk server就能被统一的进行监控、管理、调度,进行负载均衡和故障转移。

配置好所有的biztalk server后,就可以在任意一台biztalk server的机器上使用biztalk server administration管理这个biztalk group

 

biztalk host && biztalk instance

biztalk host是个逻辑概念,也可以称为逻辑主机,一个group中可以建立多个host

Group中的所有的接收位置、orchestration和发送端口都需要指定由哪个host进行处理。

 

光指定了逻辑主机host还没用,必须要落实到host instance才能真正的起作用。

一个Host就好比是一个类,类需要实例化为一个对象才能使用。同样,某一个host需要建立了对应的host instance后才被具体化为biztalk的服务,才能在biztalk的服务中运行接收位置、orchestration、发送端口等服务。

 

Host跟服务器无关,但host instance跟服务器相关,建立某个hosthost instance时需要指定在group中的哪台服务器上建立host instance,可以只在一台服务器上建立某个hosthost instance,也可以在所有的服务器上都建立这个hosthost instance。但是同一个host在同一台服务器上只能建立一个host instance

 

Biztalk group配合hosthost instance可以实现biztalk服务的负载均衡和故障转移功能。

Group管理加入到这个group中的所有服务器,管理在各个服务器上建立的host instance,如果同一个host在多个服务器上建立了host instance,那么指定由这个主机处理的orchestration、发送端口服务一旦要建立服务实例就会被均衡的分配到这几个服务器进行处理。

 

如果有多个由MB.Integration.GDN.MainProcess流程处理的消息并发进入biztalkbiztalk会把这些消息均衡的分配给BIZORCHE1BIZORCHE2BIZORCHE3Host instance进行处理。这达到了负载均衡的目的。

group中的一台服务器宕机了,biztalk group能发现这台服务器上的host instance已经停止,在分配消息时就会避开已经宕机的服务器。这实现了故障转移的功能。

 

biztalk cluster

biztalk group提供了负载均衡和故障转移的功能,但是有种情况group并不适应,考虑某些接收位置,比如SAP IDOC接收端口、MSMQ接收端口,这些类型的端口跟外部系统是通过TCP/IP的长连接实现的,这样类型的端口不适合有多个客户端去连接。

如果这样的接收端口在group里,接收端口的处理host在两个服务器上建立了host instance,那么这样的接收端口会在两台服务器上同时运行,会造成两个客户端同时试图去跟服务端进行TCP/IP长连接。

这种情况我们希望,这两台服务器上的host instance不要同时运行,正常时候一台服务器的host instance运行,这台服务器宕机后,能够自动切换到另一台的服务器的host instance

Biztalk支持windows cluster,可以把host作为windows cluster的资源加入到cluster,这样这个hosthost instance就会只运行在一台服务器上,另外一台服务器上的host instance会在第一台服务器宕机后自动切换。

猜你喜欢

转载自shuaigelingfei.iteye.com/blog/2008273