IBM®Sterling Selling and Fulfillment Suite(SSFS)专注于两个重要功能:可伸缩性和高可用性。 SSFS在应用程序服务器,数据库和Java™消息服务(JMS)中利用了这些功能。
使用JMS集群,多个JMS服务器形成一个主动/主动集群。 可以在群集成员之间平衡消息处理。 负载平衡允许在添加JMS服务器时处理更多消息,从而提供了更具可扩展性的解决方案。 如果群集成员之一发生故障,则消息将路由到其他活动的群集成员,从而确保更高的可用性。
JMS构成SSFS的组成部分。 代理和集成服务器在订单执行周期内利用JMS发送和接收消息。 当有大量订单流入SSFS时,与单个JMS服务器相比,JMS集群将有助于更快地发送和接收消息,从而减少了总响应时间。 这样可以防止JMS服务器成为性能瓶颈,从而使SSFS更具可伸缩性。 同样,当每个订单都是有时间限制的并且至关重要时,每个传入或传出的消息都很重要。 如果服务器发生故障,其他活动的JMS服务器将继续接受请求,并使SSFS无缝运行,从而使其具有很高的可用性。
SSFS V9.2中的JMS群集支持使客户能够为JMS队列配置高可用性和负载平衡。 SSFS V9.2支持以下JMS提供程序:
IBM®WebSphere Application Server(缺省消息传递) IBM®WebSphere MQ Oracle™WebLogic JMS TIBCO企业消息服务(EMS) JBoss(EAP)企业应用程序平台消息传递有关参考主题中列出的受支持的JMS提供程序版本和功能,请参见详细的系统要求文档。
注意: TIBCO EMS仅提供高可用性功能。 它不提供主动/主动或负载平衡功能。
验证所选的JMS提供程序是否已安装并在配置了集群服务的情况下运行。 您至少需要两台服务器来提供负载平衡和故障转移支持。 通过使用独立的Java程序来测试集群支持。 您可以创建一个简单的JMS发送方和接收方代码,该代码可以发送和接收多条消息来测试配置。
在本文中,示例,图形和清单均使用IBM WebSphere Application Web Server(默认消息传递)。 当您使用另一个受支持的JMS提供程序时, 表1对于更新customer_overrides.properties文件很有用。
您可以使用Applications Manager或为所有组合代理提供集中式配置来为代理配置JMS集群。
要使用Applications Manager配置JMS集群:
在SSFS应用程序控制台的“配置”选项卡中,启动“应用程序管理器”。 从可用的“流程类型”选项中选择适当的代理事务。 要访问流程类型选项,请选择应用程序平台 > 流程建模 > 流程类型 。 使用集群提供者URL和队列连接工厂的JMS集群值创建或更新代理条件。图1显示了IBM WebSphere Application Server(默认消息传递)JMS集群在Applications Manager中的值。 它是跨计算机sys001和sys002的两个节点的群集。 您也可以提供IP地址。 配置的端口是引导程序端口。
生产环境定义了代理条件,但是它要求您手动使用集群信息更新每个配置。 SSFS提供了customer_overrides.properties文件,以更新一个位置中所有代理的集群信息。 customer_overrides.properties文件安装在INSTALLATION_HOME / properties目录中。
清单1说明了customer_overrides.properties文件中代理的JMS集群信息。
通过配置备用JMS服务器,可以在不更改现有JMS环境的情况下增加高可用性。 此设置不使用JMS的扩展功能,因为它是主动/被动群集设置。
例如,现有环境指向WebSphere JMS服务器sys001( corbaloc::sys001:9811作为提供者URL,PRIMARY_QCF作为QCF名称)。 要添加JMS服务器sys002(将corbaloc::sys002:2811作为提供者URL,将BACKUP_QCF作为QCF名称),请如清单2所示更新属性(默认情况下,SSFS中未设置此属性)。
注意:仅当sys001上的主服务器发生故障时,才能访问sys002上的JMS服务器。
清单2说明了customer_overrides.properties文件中的备份代理JMS配置。
您可以使用Applications Manager分别配置JMS集成服务器,也可以使用customer_overrides.properties文件一次配置所有JMS集成服务器。
要使用Applications Manager配置集成服务器,请执行以下操作:
在SSFS应用程序控制台的“配置”选项卡中,启动“应用程序管理器”。 从可用的“流程类型”选项中选择适当的代理事务。 要访问流程类型选项,请选择应用程序平台 > 流程建模 > 流程类型 。 在“运行时”选项卡下,为群集提供程序URL,队列连接工厂和群集队列创建或更新与JMS群集相关的值。 如图2和图3所示,在JMS Sender和Receiver中为服务定义设置服务的集群配置。 “应用程序管理器”中的“代理标准详细信息”窗口显示了跨计算机sys001和sys002的两个节点群集。 您也可以提供IP地址。 配置的端口是引导程序端口。注意:必须将JMS Sender和JMS接收器分别定义为SSFS中的两个操作组件。 您可以根据服务处理程序中定义的业务逻辑的要求,将服务配置为JMS发送器,JMS接收器或两者。
您可以通过更新customer_overrides.properties文件来配置JMS集群。 该文件中的值将覆盖所有服务定义中的值,从而省去了手动更新每个服务配置的工作。
清单3显示了customer_overrides.properties文件中集成服务器的集群信息示例。
要在Applications Manager中为集成服务器配置高可用性, 请使用 “ JMS Sender属性”窗口的“ 重新连接”选项卡中的“ 使用备份JMS”选项, 如图2所示。
这与前面提到的备份代理设置类似,不同的是只能通过“应用程序管理器”而不是“ customer_overrides.properties”文件进行配置。 此选项仅适用于JMS Sender。
图4显示了Applications Manager中服务详细信息屏幕中的配置。 如图所示,还有一个附加选项卡,其中包含用于重新连接到主JMS服务器的选项。 “ 重试间隔”字段指定应用程序尝试重新连接到主JMS服务器之前经过的时间阈值。 如果服务器已启动,则其余消息处理将通过主JMS服务器进行路由,这将使当前JMS服务器成为备份。 “ 重试间隔”字段的默认值为600秒。
现在,您已经完成了SSFS中JMS集群的配置,您需要验证您的配置。
启动代理或集成服务器。 验证是否无缝发送和接收消息。 代理JVM生成消息并将其发送到JMS队列。 执行线程接收消息,并执行所需的操作。 监视分布式JMS队列中的连接。 您应该看到根据配置的负载平衡策略无缝发生了负载平衡。 要测试故障转移,请关闭其中一台JMS服务器。 根据事务的当前状态来提交或回滚现有事务。 代理或集成服务器JVM重新连接到其他集群成员之一。 要测试备份JMS,请关闭主服务器。 根据事务的当前状态来提交或回滚现有事务。 代理或集成服务器JVM重新连接到辅助服务器。本文提供有关如何使JMS集群与SSFS一起使用的信息和建议。 JMS群集支持仅在SSFS V9.2中可用。 有关其他高可用性和负载均衡功能的详细信息,请参阅“绩效管理”和“高可用性” SSFS V9.2正式产品文档中的部分中列出的相关主题 。
翻译自: https://www.ibm.com/developerworks/java/library/co-jms-cluster-ssfs/index.html
相关资源:微信小程序源码-合集6.rar