由多个服务器组成的 Enterprise Service Bus 的优点是:提高了可伸缩性、能够处理多个客户机连接并且具有更大的消息吞吐量。您还可以将 SCA 模块部署到不同的服务器中;例如,为了提供不同的资源和服务质量,对组织中的不同部门进行一定程度的分离,也许还要将测试设施与生产设施分开。
要在总线环境中创建多个服务器,则部署管理器单元中需要具有受管节点。
为调解模块需要的 SCA 运行时配置每个服务器。此高级配置将定义 SCA 运行时所使用的队列目标是位于本地服务器还是远程服务器上。如果您指定服务器要托管队列目标,则该服务器将成为 SCA.SYSTEM 总线的成员,并获取要将队列目标指定给的消息传递引擎。如果您指定服务器不托管队列目标,则它不需要成为 SCA.SYSTEM 总线的成员,也就不需要消息传递引擎。
请考虑图 1 中所显示的方案。
SCA.SYSTEM 总线中的所有消息传递引擎都隐式连接起来,并且该总线中的任何消息传递引擎都可以处理请求。总线中所有消息传递引擎之间共享指定给总线中每个消息传递引擎的资源的知识。
不需要总线中的所有消息传递引擎同时运行;如果其中的某个消息传递引擎停止,则其余消息传递引擎会继续运行。然而,如果消息传递引擎已停止,则它所拥有的资源(特别是调解模块的队列点)将不可用。另外,消息传递引擎只能在创建它的服务器中运行。该服务器因此成为单点故障;如果该服务器不能运行,则该消息传递引擎不可用。通过将服务器集群配置为总线成员,消息传递引擎就可以在集群中的某个服务器上运行;如果该服务器出现故障,则该消息传递引擎可在该集群中的一个备用服务器上运行。
可以采用多种不同的方法来创建一个多服务器 Enterprise Service Bus: