我们正在设计一个解决方案,该解决方案将使用来自 IBM MQ 的消息使用 JMS。该计划是使用WAS Liberty,因此JMS是首选技术。我们将创建消息驱动 bean,用于侦听 MQ 队列中的消息。
我们也在考虑WAS Liberty和OpenLiberty。
这里的诀窍是我们必须通过故障转移来实现它,这样如果我们的一台服务器发生故障,另一台服务器将继续自动使用来自 MQ 的消息。就像在一种被动/被动机制中一样。
我知道需要安装 MQ 适配器,因为它不是开箱即用的。
我有以下问题:
- WAS Liberty 消息传递实现是否支持故障转移?这意味着如果消息消费节点发生故障,备用节点将自动迁移并开始从 MQ 消费消息?那么OpenLiberty呢?
- 如何配置消息系统以这种方式工作?你能指出文档吗?
还是此功能仅由 WebSphere 提供?
WebSphere Liberty 或 Open Liberty 中还没有这样的功能。您可以在此处创建 RFE https://www.ibm.com/developerworks/rfe/?PROD_ID=544 。 有一些方法可以手动完成,请检查以下链接:
- Liberty 上的 JMS 激活规范:"WAS_EndpointInitialState"完整配置文件等效属性?
- 在运行时控制终结点的状态
您可以执行的解决方案:
- 创建一个脚本/应用程序来监视您的服务器,并调用该 API 以启用/禁用特定服务器中的端点
- 或者使用 Liberty 的动态集群/自动扩展功能,将您的应用程序划分为两个集群 - 一个有 MDB,一个没有。然后定义策略,使 MDB 集群具有 1 个实例始终可用。因此,一旦服务器死亡,它就会自动重新启动集群中的某个位置
- 或者以相同的方式使用 Kubernetes/ICP 平台 - 因此部署 2 个版本的应用程序,并定义不同的副本集参数。