Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ibm mq 如何将IBM MQ配置为HA群集?_Ibm Mq - Fatal编程技术网

Ibm mq 如何将IBM MQ配置为HA群集?

Ibm mq 如何将IBM MQ配置为HA群集?,ibm-mq,Ibm Mq,我想创建一个高可用性集群。但是我在IBM文档中找不到创建一个的任何步骤 我按照指南创建集群 这两个QM都是使用docker compose部署的: 版本:“3.7” 服务: 伦敦: 建造: 上下文:./config/london 环境: 许可证:接受 MQ_QMGR_名称:QM1 MQ_启用_度量:true 端口: -9443:9443网络视图 -9157:9157度量 纽约: 建造: 上下文:./config/newyork 环境: 许可证:接受 MQ_QMGR_名称:QM2 MQ_启用_度量

我想创建一个高可用性集群。但是我在IBM文档中找不到创建一个的任何步骤

我按照指南创建集群

这两个QM都是使用docker compose部署的:

版本:“3.7” 服务: 伦敦: 建造: 上下文:./config/london 环境: 许可证:接受 MQ_QMGR_名称:QM1 MQ_启用_度量:true 端口: -9443:9443网络视图 -9157:9157度量 纽约: 建造: 上下文:./config/newyork 环境: 许可证:接受 MQ_QMGR_名称:QM2 MQ_启用_度量:true 端口: -9553:9443网络视图 -9158:9157指标 取决于: -伦敦 两个图像的Dockerfile:

FROM ibmcom/mq

COPY init.mqsc /etc/mqm/20-init.mqsc
以下是伦敦MQ实例的配置:

* cluster config
ALTER QMGR +
      REPOS(INVENTORY) +
      PSCLUS(ENABLED)

DEFINE LISTENER(LONDON_LS) +
       TRPTYPE(TCP) +
       CONTROL(QMGR)

DEFINE CHANNEL(INVENTORY.LONDON) +
       CHLTYPE(CLUSRCVR) +
       TRPTYPE(TCP) +
       CONNAME('london(1414)') +
       CLUSTER(INVENTORY) +
       DESCR('TCP Cluster-receiver channel for queue manager LONDON')

DEFINE CHANNEL(INVENTORY.NEWYORK) +
       CHLTYPE(CLUSSDR) +
       TRPTYPE(TCP) +
       CONNAME('newyork(1414)') +
       CLUSTER(INVENTORY) +
       DESCR('TCP Cluster-sender channel from LONDON to repository at NEWYORK')

SET CHLAUTH('INVENTORY.LONDON') +
    TYPE(QMGRMAP) +
    QMNAME(QM2) +
    USERSRC(CHANNEL) +
    ADDRESS('*')
* cluster config
ALTER QMGR +
      REPOS(INVENTORY) +
      PSCLUS(ENABLED)

DEFINE LISTENER(NEWYORK_LS) +
       TRPTYPE(TCP) +
       CONTROL(QMGR)

DEFINE CHANNEL(INVENTORY.NEWYORK) +
       CHLTYPE(CLUSRCVR) +
       TRPTYPE(TCP) +
       CONNAME('newyork(1414)') +
       CLUSTER(INVENTORY) +
       DESCR('TCP Cluster-receiver channel for queue manager NEWYORK')

DEFINE CHANNEL(INVENTORY.LONDON) +
       CHLTYPE(CLUSSDR) +
       TRPTYPE(TCP) +
       CONNAME('london(1414)') +
       CLUSTER(INVENTORY) +
       DESCR('TCP Cluster-sender channel from NEWYORK to repository at LONDON')

SET CHLAUTH('INVENTORY.NEWYORK') +
    TYPE (QMGRMAP) +
    QMNAME(QM1) +
    USERSRC(CHANNEL) +
    ADDRESS('*')
这里是纽约的例子:

* cluster config
ALTER QMGR +
      REPOS(INVENTORY) +
      PSCLUS(ENABLED)

DEFINE LISTENER(LONDON_LS) +
       TRPTYPE(TCP) +
       CONTROL(QMGR)

DEFINE CHANNEL(INVENTORY.LONDON) +
       CHLTYPE(CLUSRCVR) +
       TRPTYPE(TCP) +
       CONNAME('london(1414)') +
       CLUSTER(INVENTORY) +
       DESCR('TCP Cluster-receiver channel for queue manager LONDON')

DEFINE CHANNEL(INVENTORY.NEWYORK) +
       CHLTYPE(CLUSSDR) +
       TRPTYPE(TCP) +
       CONNAME('newyork(1414)') +
       CLUSTER(INVENTORY) +
       DESCR('TCP Cluster-sender channel from LONDON to repository at NEWYORK')

SET CHLAUTH('INVENTORY.LONDON') +
    TYPE(QMGRMAP) +
    QMNAME(QM2) +
    USERSRC(CHANNEL) +
    ADDRESS('*')
* cluster config
ALTER QMGR +
      REPOS(INVENTORY) +
      PSCLUS(ENABLED)

DEFINE LISTENER(NEWYORK_LS) +
       TRPTYPE(TCP) +
       CONTROL(QMGR)

DEFINE CHANNEL(INVENTORY.NEWYORK) +
       CHLTYPE(CLUSRCVR) +
       TRPTYPE(TCP) +
       CONNAME('newyork(1414)') +
       CLUSTER(INVENTORY) +
       DESCR('TCP Cluster-receiver channel for queue manager NEWYORK')

DEFINE CHANNEL(INVENTORY.LONDON) +
       CHLTYPE(CLUSSDR) +
       TRPTYPE(TCP) +
       CONNAME('london(1414)') +
       CLUSTER(INVENTORY) +
       DESCR('TCP Cluster-sender channel from NEWYORK to repository at LONDON')

SET CHLAUTH('INVENTORY.NEWYORK') +
    TYPE (QMGRMAP) +
    QMNAME(QM1) +
    USERSRC(CHANNEL) +
    ADDRESS('*')
我希望有一个主题,在这个主题中,我的应用程序可以从中写入/读取,而不管它们连接到哪个QM。
这是否可能?如果可能,您是否可以共享MQSC命令或到示例设置的链接。

MQ群集是关于队列管理器之间的负载平衡连接

例如,您可以有一个在伦敦和纽约定义的集群队列,这可以在hot/hot上启用,并且集群成员发送到该队列的消息通常在两个实例之间进行循环。 如果您希望它是热/热的,那么您将禁用两个实例中的一个,例如伦敦,然后您将引导您的应用程序连接并从纽约读取,如果纽约宕机,您可以将队列放置在伦敦,从该点开始的消息将转到伦敦,您可以将应用程序定向到伦敦。请注意,纽约队列上的任何消息只有在纽约恢复后才可用。MQ不会将消息复制到两个队列管理器。 对于pub/sub,它略有不同,因为集群中的所有队列管理器都知道集群主题,如果集群中任何QM上的任何订阅者订阅了该主题,订阅者QM将进行代理订阅,如果该主题在任何队列管理器上发生任何发布,则副本将定向到每个本地订阅者以及具有代理订阅的任何QMs,订阅者QM随后将向其本地的任何订阅者传递消息,因此即使同一QM上有多个订阅者,也只会有一个代理子订阅者

如果您有非持久订阅者,那么他们可以订阅任何QM上的主题,并在创建订阅后(而不是之前)接收发布的消息。 如果您要求在订阅服务器未连接时接收消息,则需要持久订阅,该订阅将绑定到在其上创建的特定队列管理器。
您可能想看看RDQM,它确实提供了节点之间的复制,但与容器不兼容。

如果您创建了集群,那么您就没有发布/订阅集群。现在,您已经可以在这两个队列管理器上订阅,以读取其中任何一个队列管理器上发布的消息。但您将收到两条消息,一条来自伦敦,另一条来自纽约在其中一个QM上创建一个主题共享该主题,但这些消息不共享。这就是我想要达到的目标。你的评论澄清了一些事情。感谢您的时间,这将是完美的添加到一个答案的评论中的所有信息。如果你还有其他问题,请告诉我。