具有故障转移功能的 IBM Liberty 消息消耗



我们正在设计一个解决方案,该解决方案将使用来自 IBM MQ 的消息使用 JMS。该计划是使用WAS Liberty,因此JMS是首选技术。我们将创建消息驱动 bean,用于侦听 MQ 队列中的消息。

我们也在考虑WAS Liberty和OpenLiberty。

这里的诀窍是我们必须通过故障转移来实现它,这样如果我们的一台服务器发生故障,另一台服务器将继续自动使用来自 MQ 的消息。就像在一种被动/被动机制中一样。

我知道需要安装 MQ 适配器,因为它不是开箱即用的。

我有以下问题:

  1. WAS Liberty 消息传递实现是否支持故障转移?这意味着如果消息消费节点发生故障,备用节点将自动迁移并开始从 MQ 消费消息?那么OpenLiberty呢?
  2. 如何配置消息系统以这种方式工作?你能指出文档吗?

还是此功能仅由 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 个版本的应用程序,并定义不同的副本集参数。