gpt4 book ai didi

cluster-computing - Websphere MQ 集群

转载 作者:行者123 更新时间:2023-12-04 17:23:29 25 4
gpt4 key购买 nike

我对 websphere MQ 还很陌生,所以如果我没有使用正确的术语,请原谅我。我们正在做一个项目,我们需要在其中设置一个 MQ 集群以实现高可用性。

客户端应用程序为订阅者和发布者维护与队列管理器的连接池。假设我们在一个集群中有两个队列管理器,它们托管具有相同名称的队列。每个队列都有自己的一组订阅者和发布者,这些订阅者和发布者由客户端应用程序缓存。假设其中一个队列管理器出现故障,该队列管理器上队列的订阅者和发布者将死亡,从而使客户端应用程序上的对象失效。

在这种情况下,以下场景可以处理吗?

1] 当第一个 QueueManager 崩溃时,其队列上的消息将传输到集群中的其他队列管理器

2] 当QueueManager 再次出现时,是否有任何机制可以恢复发布者和订阅者。目前,我们在客户端应用程序中编写了一个自动恢复线程,尝试重新连接失败的发布者和订阅者。但是在集群设置的情况下,我们担心发布者和订阅者会重新连接到另一个正在运行的 qmanager。当崩溃的队列管理器恢复时,将没有发布者和订阅者。

有人可以解释一下如何处理上述两种情况吗?

最佳答案

WMQ 集群是一个高级主题。在尝试任何事情之前,您必须首先大量阅读 WMQ 并了解 WMQ 世界中的集群意味着什么。

WMQ 集群在很多方面与传统集群不同。与传统集群不同,比如在主动/被动集群中,数据将在应用程序的主动和被动实例之间共享。在任何时候,应用程序的事件实例都将处理数据。当主动实例宕机时,被动实例接管并开始处理。在 WMQ 集群中情况并非如此,其中集群中的队列管理器是唯一的,因此不共享由这些队列管理器托管的队列/主题。您可能在两个队列管理器中拥有相同的队列/主题,但由于队列管理器不同,因此不会共享消息、主题、订阅等。

回答您的问题。
1) 否。消息,如果持续存在,将保留在崩溃的队列管理器中。它们不会转移到其他队列管理器。由于队列管理器本身不可用,因此在启动队列管理器之前无法进行任何操作。
2)没有。队列管理器不能这样做。应用程序有责任检查队列管理器的可用性并重新连接。 WMQ 提供自动客户端重新连接功能,其中 WMQ 客户端库在检测到连接中断错误时自动重新连接到队列管理器。此功能可从 WMQ v7.x 及更高版本通过 C 和 Java 客户端获得。 C# 客户端支持 v7.1 中的功能。

对于您的高可用性要求,您可以考虑使用 WMQ 的多实例队列管理器功能。此功能启用在两台不同机器上运行的同一队列管理器的主动/被动实例。队列管理器的主动实例将处理客户端连接,而被动实例将处于 sleep 模式。两个实例都将共享数据和日志。一旦主动实例关闭,被动实例就会变为主动实例。在事件队列管理器关闭之前,您将可以访问队列中的所有持久消息。

通读 WMQ 信息中心,了解有关多实例队列管理器的更多信息。

关于cluster-computing - Websphere MQ 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15821841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com