![[MQ 9.3.0 2022 年 6 月]](ng930.gif)
开发灵活的可扩展客户机应用程序
为了实现容错和可伸缩性,可以通过将支持连接选项的客户机应用程序部署到统一集群,以便在队列管理器之间重新均衡应用程序实例。
请参阅关于统一集群以获取有关统一集群的概述。
在理想情况下,此重新均衡过程对于应用程序而言是不可见的,但只有某些类型的应用程序适合于此类型的部署,并且在应用程序设计中可能需要考虑一些因素。
这些考量因素分为两大类:
- 罕见的错误路径,可重新连接的应用程序可能已存在此类路径,但在部署到统一集群时更有可能出现此类路径。 例如,在重新连接后,将回退任何正在执行的工作单元,并且会重置浏览光标。 对于在当前环境中可重新连接的应用程序而言,这些可能是罕见的事件,因此应用程序代码没有彻底处理这些事件。 复查应用程序逻辑以确保对此类情况进行了适当的处理,这有助于避免出现意外问题。
- 与特定队列管理器的亲缘关系。 如果您知道应用程序必须始终连接到同一队列管理器或特定队列管理器,那么应该将其配置为重新连接到该队列管理器,或者不启用它与该队列管理器的连接。 但是,这些亲缘关系可能是临时的,例如等待响应消息。 以下部分讨论了如何影响均衡算法来考虑应用程序代码中的这些亲缘关系。 有关这些选项的的更多详细信息并了解如何通过配置(而不是应用程序代码)来实现类似的方法,请参阅影响统一集群中的应用程序重新均衡。
影响 MQI 中的重新连接选项
有关 MQCNO_RECONNECT 的更多信息,请参阅重新连接选项。
如果您知道应用程序必须始终连接到同一队列管理器或特定队列管理器,那么应该将其配置为 MQCNO_RECONNECT_Q_MGR 或 MQCNO_RECONNECT_DISABLED。
影响 MQI 中的均衡算法
但是,您可能希望控制或影响重新均衡行为以满足特定类型的应用程序的需求,例如,最大限度减少对正在执行的事务的中断,或确保请求者应用程序在移动之前接收到响应。
影响统一集群中的应用程序重新均衡中假定并讨论了某些期望的缺省行为。 您还可以通过 client.ini 文件来影响特定应用程序在配置或部署时的行为,如该主题中所讨论。
在其他情况下,使均衡行为和需求成为应用程序逻辑的一部分可能更有意义。 在这些情况下,在 MQCONNX 调用中连接到队列管理器时,可以在称为 MQBNO(均衡选项)的结构中将应用程序的相同相关特征提供给 IBM® MQ。
如果提供了 MQBNO 结构,那么它必须提供 IBM MQ 所需的所有信息,以便决定如何以及何时要求应用程序重新连接到其他队列管理器。
您必须提供:
- 应用程序的 Type
- 在其中重新平衡实例的 Timeout ,而不考虑状态
- 任何特殊 BalanceOptions
有关此结构的格式的详细信息,请参阅 MQBNO。
对于 .NET 应用程序,请参阅影响 .NET 中的应用程序重新均衡以获取更多信息。