首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MQ信道F5重路由

MQ信道F5重路由
EN

Stack Overflow用户
提问于 2017-08-03 20:53:46
回答 1查看 571关注 0票数 1

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

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

如果我能够利用F5负载平衡,我认为它会模拟一个MQ集群网关队列管理器。

能行吗?陷阱?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-05 05:35:31

您将看到这个配置中的几个问题:

  1. 对于持久化消息,发件人和相应的接收通道将通过信道发送的每个持久消息增加序列号。如果此序列号不匹配,则通道将不会启动,除非将其重置为与一端或另一端(通常为发件人)匹配。这意味着,如果发送方通道连接到QMGR1后的F5,则QMGR1上的接收方将增加序列号;如果发送方通道下一次将其连接到QMGR2,则接收方的序列号将低于发送方的序列号,并且不会启动。
  2. 即使您只发送不增加序列号的非持久消息,您仍然无法获得与在两个队列管理器前面有一个集群网关相同的结果。通常,通过集群配置,您将在两个集群队列管理器之间得到消息的循环。对于发送方通道,它通常被配置为在消息被放置到关联传输队列(TRIGGER)时启动,并一直运行直到消息在断开连接间隔(DISCINT)上指定的时间内尚未发送为止。因此,您将不会看到F5后面的两个队列管理器之间的消息工作负载平衡。根据配置F5的方式以及断开间隔设置为多长时间,您将看到一组消息要转到一个队列管理器,然后一组消息将转到另一个队列管理器。与发送方通道设置相比,每个组中的消息数量将取决于通信量模式。

请注意,即使发件人通道配置为只连接到两个群集队列管理器中的一个,如果将群集工作负载使用队列(CLWLUSEQ)设置为群集队列的ANY值,则可以在队列的两个实例之间保持消息循环。这需要将发件人通道队列管理器上的远程队列(QREMOTE)指定一个远程队列管理器别名(RQMA)作为远程队列管理器名称(RQMNAME)值。然后,RQMA将允许消息解析到集群队列的任何实例,包括本地实例。以下是发送队列管理器(SQMGR)和接收方(第一个集群)队列管理器(CQMGR1)和第二个集群队列管理器(CQMGR2)的对象示例:

SQMGR:

代码语言:javascript
复制
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) .....

CQMGR1:

代码语言:javascript
复制
DEFINE CHL(SQMGR.CQMGR1) CHLTYPE(RCVR) MCAUSER('notmqm') .....
DEFINE QREMOTE(CLUSTER.RQMA) RNAME('') RQMNAME('') XMITQ('')
DEFINE QLOCAL(CQLOCAL) CLUSTER('YOURCLUSTER') CLWLUSEQ(ANY)

CQMGR2:

代码语言:javascript
复制
DEFINE QLOCAL(CQLOCAL) CLUSTER('YOURCLUSTER') CLWLUSEQ(ANY)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45494322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档