MQ通道F5重新路由

时间:2017-08-03 20:53:47

标签: ibm-mq f5

我想知道是否可以将MQ Sender通道指向F5负载均衡器VIP地址,而不是指向具体的MQ服务器IP地址,并将消息传递给F5集群中的两个MQ服务器之一资源组。 F5集群中有两个MQ服务器。

我尝试做的是确定是否可以在更多硬件上使用此方法代替创建MQ群集网关队列管理器,并使用F5 LB功能将消息传递到群集队列。

如果我可以利用F5负载平衡,我认为它会模拟MQ Cluster Gateway Queue管理器。

它会起作用吗?缺陷?

1 个答案:

答案 0 :(得分:0)

您正在查看此配置的几个问题:

  1. 对于持久性消息,发送者和相应的接收者信道递增序列号,每个持久性消息通过信道发送。如果此序列号不匹配,则通道将不会启动,除非它被重置为匹配一端或另一端(通常是发送者)。这意味着如果发送方通道连接到F5后面的QMGR1,QMGR1上的接收方将递增序列号,如果下一次发送方通道连接它将路由到QMGR2,接收方的序列号将低于它。在发件人身上,它不会启动。
  2. 即使您只发送不增加序列号的非持久性消息,您仍然无法获得与在两个队列管理器前面拥有群集网关时相同的结果。通常使用群集配置,您将获得两个群集队列管理器之间的消息循环。对于发送方通道,通常将其配置为在将消息放入关联的传输队列(TRIGGER)时启动,并保持运行直到消息在断开间隔({{ 1}})。因此,您不会在F5后面的两个队列管理器之间看到消息的工作负载平衡。根据您配置F5的方式以及设置断开间隔的时间长短,您将看到一组消息转到一个队列管理器,然后一组消息转到另一个队列管理器。每个组中的邮件数量取决于与发件人渠道设置相比的流量模式。
  3. 请注意,即使将发件人通道配置为仅连接到两个群集队列管理器中的一个,如果将群集工作负载使用队列(DISCINT)设置为CLWLUSEQ的值,在群集队列中,您可以在队列的两个实例之间仍然存在循环消息。这将要求您在发件人通道队列管理器上具有远程队列(ANY),将远程队列管理器别名(QREMOTE)指定为远程队列管理器名称(RQMA)值。然后,RQMA将允许消息解析到包括本地实例的群集队列的任何实例。下面是Sender队列管理器(RQMNAME)和Receiver(第一个集群)队列管理器(SQMGR)和第二个集群队列管理器(CQMGR1)的对象示例:

    <强> SQMGR:

    CQMGR2

    <强> CQMGR1:

    DEFINE QREMOTE(TO.CQLOCAL) RNAME(CQLOCAL) RQMNAME(CLUSTER.RQMA) XMITQ(CQMGR1)
    DEFINE QLOCAL(CQMGR1) USAGE(XMITQ) INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(SQMGR.CQMGR1) TRIGGER .....
    DEFINE CHL(SQMGR.CQMGR1) CHLTYPE(SDR) XMITQ(CQMGR1) CONNAME(10.20.30.40) .....
    

    <强> CQMGR2:

    DEFINE CHL(SQMGR.CQMGR1) CHLTYPE(RCVR) MCAUSER('notmqm') .....
    DEFINE QREMOTE(CLUSTER.RQMA) RNAME('') RQMNAME('') XMITQ('')
    DEFINE QLOCAL(CQLOCAL) CLUSTER('YOURCLUSTER') CLWLUSEQ(ANY)
    
相关问题