在IBM SSFS V9.2中配置JMS集群

    技术2024-03-20  99

    总览

    IBM®Sterling Selling and Fulfillment Suite(SSFS)专注于两个重要功能:可伸缩性和高可用性。 SSFS在应用程序服务器,数据库和Java™消息服务(JMS)中利用了这些功能。

    使用JMS集群,多个JMS服务器形成一个主动/主动集群。 可以在群集成员之间平衡消息处理。 负载平衡允许在添加JMS服务器时处理更多消息,从而提供了更具可扩展性的解决方案。 如果群集成员之一发生故障,则消息将路由到其他活动的群集成员,从而确保更高的可用性。

    JMS构成SSFS的组成部分。 代理和集成服务器在订单执行周期内利用JMS发送和接收消息。 当有大量订单流入SSFS时,与单个JMS服务器相比,JMS集群将有助于更快地发送和接收消息,从而减少了总响应时间。 这样可以防止JMS服务器成为性能瓶颈,从而使SSFS更具可伸缩性。 同样,当每个订单都是有时间限制的并且至关重要时,每个传入或传出的消息都很重要。 如果服务器发生故障,其他活动的JMS服务器将继续接受请求,并使SSFS无缝运行,从而使其具有很高的可用性。

    支持SSFS中的JMS集群

    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发送方和接收方代码,该代码可以发送和接收多条消息来测试配置。

    一般建议

    为了提高负载平衡和高可用性,请为代理和集成服务器配置单独的JMS群集。 如果JMS服务器发生故障,SSFS将生成丢失的消息。 对于集成服务器,情况并非如此。 文件存储和JDBC存储经常用于持久化或存储JMS消息。 文件存储将提高性能,而JDBC存储将更可靠。 选择适当的数据存储以实现消息持久性。 如果使用JMS集群功能在提供者URL中定义多个服务器( 如图1 , 图2和图3所示) ,请不要实施备份JMS配置。 提供者URL( yfs.yfs.agent.override.providerurl或yfs.yfs.flow.override.providerurl )和初始上下文工厂( yfs.yfs.agent.override.icf或yfs.yfs.flow.override.icf )每个JMS提供程序的值都会更改。 应用程序管理器可帮助您选择直接映射到其相应类名称的初始上下文工厂。

    在本文中,示例,图形和清单均使用IBM WebSphere Application Web Server(默认消息传递)。 当您使用另一个受支持的JMS提供程序时, 表1对于更新customer_overrides.properties文件很有用。

    表1. JMS提供程序的ICF类名称和示例提供程序URL
    JMS提供者 ICF类别名称 提供者样本网址 WebSphere MQ com.sun.jndi.fscontext.RefFS ContextFactory 绑定文件的路径,例如“ file:// opt / mqm / files” Oracle WebLogic weblogic.jndi.WLInitialContextFactory t3:// sys001:7001,sys002:7001 JBoss消息传递 org.jnp.interfaces.NamingContextFactory sys001:1099,sys002:1099 TIBCO EMS com.tibco.tibjms.naming.Tibjms初始ContextFactory tibjmsnaming:// sys001:7243,tibjmsnaming:// sys002:7243

    配置代理

    您可以使用Applications Manager或为所有组合代理提供集中式配置来为代理配置JMS集群。

    使用应用程序管理器

    要使用Applications Manager配置JMS集群:

    在SSFS应用程序控制台的“配置”选项卡中,启动“应用程序管理器”。 从可用的“流程类型”选项中选择适当的代理事务。 要访问流程类型选项,请选择应用程序平台 > 流程建模 > 流程类型 。 使用集群提供者URL和队列连接工厂的JMS集群值创建或更新代理条件。

    图1显示了IBM WebSphere Application Server(默认消息传递)JMS集群在Applications Manager中的值。 它是跨计算机sys001和sys002的两个节点的群集。 您也可以提供IP地址。 配置的端口是引导程序端口。

    图1.样本代理两节点集群配置

    使用customer_overrides.properties文件

    生产环境定义了代理条件,但是它要求您手动使用集群信息更新每个配置。 SSFS提供了customer_overrides.properties文件,以更新一个位置中所有代理的集群信息。 customer_overrides.properties文件安装在INSTALLATION_HOME / properties目录中。

    清单1说明了customer_overrides.properties文件中代理的JMS集群信息。

    清单1. customer_overrides.properties中的样本代理JMS配置
    #Agent configuration for JMS yfs.yfs.agent.override.providerurl=corbaloc::sys001:9811,:sys002:2811 yfs.yfs.agent.override.icf=com.ibm.websphere.naming.WsnInitialContextFactory yfs.yfs.agent.override.qcf=CLUSTER_QCF

    为代理配置备份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配置。

    清单2. customer_overrides.properties中的示例备份代理JMS配置
    #Agent configuration for primary JMS server yfs.yfs.agent.override.providerurl=corbaloc::sys001:9811 yfs.yfs.agent.override.icf=com.ibm.websphere.naming.WsnInitialContextFactory yfs.yfs.agent.override.qcf=PRIMARY_QCF #Agent configuration for backup JMS server yfs.yfs.agent.backup.providerurl=corbaloc::sys002:2811 yfs.yfs.agent.backup.icf=com.ibm.websphere.naming.WsnInitialContextFactory yfs.yfs.agent.backup.qcf=BACKUP_QCF

    配置集成服务器

    您可以使用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接收器或两者。

    图2. JMS Sender的示例服务集群配置
    图3. JMS Receiver的示例服务集群配置

    使用customer_overrides.properties文件

    您可以通过更新customer_overrides.properties文件来配置JMS集群。 该文件中的值将覆盖所有服务定义中的值,从而省去了手动更新每个服务配置的工作。

    清单3显示了customer_overrides.properties文件中集成服务器的集群信息示例。

    清单3. customer_overrides.properties中的示例集成服务器JMS配置
    #Integration Server configuration for JMS yfs.yfs.flow.override.providerurl=corbaloc::sys001:9811,:sys002:2811 yfs.yfs.flow.override.icf=com.ibm.websphere.naming.WsnInitialContextFactory yfs.yfs.flow.override.qcf=CLUSTER_QCF

    为Integration Server配置备份JMS

    要在Applications Manager中为集成服务器配置高可用性, 请使用 “ JMS Sender属性”窗口的“ 重新连接”选项卡中的“ 使用备份JMS”选项, 如图2所示。

    这与前面提到的备份代理设置类似,不同的是只能通过“应用程序管理器”而不是“ customer_overrides.properties”文件进行配置。 此选项仅适用于JMS Sender。

    图4显示了Applications Manager中服务详细信息屏幕中的配置。 如图所示,还有一个附加选项卡,其中包含用于重新连接到主JMS服务器的选项。 “ 重试间隔”字段指定应用程序尝试重新连接到主JMS服务器之前经过的时间阈值。 如果服务器已启动,则其余消息处理将通过主JMS服务器进行路由,这将使当前JMS服务器成为备份。 “ 重试间隔”字段的默认值为600秒。

    图4.备份JMS的样本服务配置

    验证您的配置

    现在,您已经完成了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
    Processed: 0.015, SQL: 9