Websphere MQ 集群 - 保持本地流量

Websphere MQ Cluster - Keeping traffic Geographically Local

我们希望使用 MQ 集群,以便更好地在两个不同站点之间分配工作负载。我们的要求之一是保持流量在地理上本地化,以避免不必要地在站点之间路由消息(除非没有可用的本地 MQ 管理器)。为实现这一点,我们目前正在寻求使用队列别名,如本 presentation.

第 26 页(智能路由部分)所示

为了测试,我们使用三个 MQ 管理器(MQ 版本 9)和队列设置了一个迷你集群,就像在演示幻灯片中一样,当所有管理器和队列都可用时,我们可以看到消息在同一个队列中路由区域符合预期,但是,例如,如果我们对纽约的 NYQ 别名队列应用放置禁止,我们看不到任何新消息路由到伦敦的替代 NYQ 别名队列。相反,尝试将消息写入 AppQ 别名队列的客户端应用程序获得 MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2268' ('MQRC_CLUSTER_PUT_INHIBITED').。此外,如果我们完全结束 mqm NEWYORK,客户端应用程序能够将消息写入 AppQ 别名队列,但是,消息只是在 AppQ 管理器的 SYSTEM.CLUSTER.TRANSMIT.QUEUE 中排队,而不是路由到 LONDON MQ 管理器的替代 NYQ 别名队列。为什么会这样?

在上述测试场景中,我们通过将集群队列的默认绑定类型更改为 "Not fixed"(例如 ALT QL(QUEUE_NAME) DEFBIND(NOTFIXED)).