我们正在设计一个解决方案,该解决方案将使用 JMS 使用来自 IBM MQ 的消息。该计划是使用 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 。 有多种方法可以手动执行此操作,请检查以下链接:
- JMS Activation spec on Liberty: “WAS_EndpointInitialState” full profile equivalent property?
- Controlling the state of endpoints at runtime
您可以执行的解决方案:
- 创建一个脚本/应用程序来监控您的服务器并调用该 API 来启用/禁用特定服务器中的端点
- 或者使用 Liberty 的动态集群/自动缩放功能,将您的应用程序划分为两个集群 - 一个带有 MDB,一个没有。然后定义 MDB 集群有 1 个实例始终可用的策略。因此,一旦服务器挂掉,它就会自动在集群中的某个位置重新启动
- 或者以相同的方式使用 Kubernetes/ICP 平台 - 因此部署 2 个版本的应用,并定义不同的副本集参数。
关于websphere - 具有故障转移功能的 IBM Liberty 消息消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55633631/