第一章 IBM MQ高可用+负载均衡实验前期准备工作

一、 实验的场景

1.1场景一:MQ集群负载均衡接收消息

从QMFX发送消息到MYCLUSTER集群(QMFX->MYCLUSTER),使消息能够负载分发到2个节点上,并且在发送过程中2个网关(QMRGRECGC)其中任意一个宕机不影响正常发送。
目的:1.能够达到负载均衡;2.达到网关高可用

1.2场景二:测试高可用HA下绑定VIP地址做IP地址漂移(QMRGRECGC->QMFX),实现在单节点故障情况下,自动虚IP漂移到另一个节点上实现服务高可用

目的:1.虚IP在2个节点间自动漂移;2.VIP漂移后应用程序能够自动重连实现消息重复不丢失,服务高可用

1.3场景三:测试高可用,使用连接工厂(多地址连接方式),不通过虚地址实现单节点故障后自动连接备用节点(QMRGRECGC->QMFX)

目的:1.实现主节点故障后能够自动重连到备用节点实现消息不丢失,服务高可用

二、 实验前的环境规划

在这里插入图片描述

三、队列管理器配置脚本

3.1MQPROD1(数据节点1)

各队列管理的配置脚本:
MQPROD1执行命令(192.168.153.128:1414):

#创建队列管理器
crtmqm -h 1024 -lp 20 -ls 5 -u MQPROD1.DLQ MQPROD1
#启动队列管理器
strmqm MQPROD1
#进入队列管理器控制台
runmqsc MQPROD1
#设置该队列管理器为完全仓储库
ALTER QMGR REPOS(MYClUSTER)
#启动监听
Start listener
#定义一个服务器连接通道
DEFINE CHANNEL(MY.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP)
队列管理器权限,禁用认证
ALTER QMGR CHLAUTH (DISABLED)
修改监听为随着队列管理器一起启停
alter  LISTENER(SYSTEM.DEFAULT.LISTENER.TCP)  TRPTYPE(TCP) CONTROL(QMGR)
#定义集群接收通道
DEFINE CHANNEL(TO.MQPROD1) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('192.168.153.128(1414)') CLUSTER(MYClUSTER)
#定义集群发送通道
DEFINE CHANNEL(TO.MQPROD2) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('192.168.153.129(1414)') CLUSTER(MYClUSTER)
#定义本地接收队列
DEFINE QLOCAL(QLRECENTRY) maxdepth(50000) CLUSTER(MYClUSTER)
CLUSTER(MYClUSTER)代表该队列在集群中共享


脚本之后后,通过MQ的可视化界面看到的如下:
在这里插入图片描述
在这里插入图片描述

3.2MQPROD2(数据节点2)脚本

MQPROD2执行命令(192.168.153.129:1414):

#创建队列管理器
crtmqm -h 1024 -lp 20 -ls 5 -u MQPROD2.DLQ MQPROD2
#启动队列管理器
strmqm MQPROD2
#进入队列管理器控制台
runmqsc MQPROD2
#设置该队列管理器为完全仓储库(若是通过命令执行了该命令,就必须命令添加各个集群的连接通道)
ALTER QMGR REPOS(MYClUSTER)
#启动监听
Start listener
#定义一个服务器连接通道
DEFINE CHANNEL(MY.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP)
#队列管理器权限,禁用认证
ALTER QMGR CHLAUTH (DISABLED)
#定义集群接收通道(用于其他队列管理器连接到本队列管理器,进行通信)
DEFINE CHANNEL(TO.MQPROD2) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('192.168.153.129(1414)') CLUSTER(MYClUSTER)
#定义集群发送通道(用于连接到其他队列管理器,进行通信)
DEFINE CHANNEL(TO.MQPROD1) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('192.168.153.128(1414)') CLUSTER(MYClUSTER)

在这里插入图片描述
在这里插入图片描述

3.3接收网关队列管理器

接收网关队列管理器(192.168.153.129:1417和192.168.153.128:1417):
分别在两个服务器上创建相同的网关队列管理器

#创建队列管理器
crtmqm -h 1024 -lp 20 -ls 5 -u QMRGRECGC.DLQ QMRGRECGC
#启动队列管理器
strmqm QMRGRECGC
#进入队列管理器控制台
runmqsc QMRGRECGC
#定义一个空的远程队列管理器,这个代表一个网关的特殊地方
DEFINE QREMOTE(ANY.CLUSTER) RNAME(' ') RQMNAME(' ')
#定义服务器连接通道
DEFINE CHANNEL(MY.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP)
#修改监听可以随着队列管理器自动启停并修改默认端口1414为1417
alter  LISTENER(SYSTEM.DEFAULT.LISTENER.TCP)  TRPTYPE(TCP) CONTROL(QMGR) PORT(1417)
队列管理器权限,禁用认证
ALTER QMGR CHLAUTH (DISABLED)
#定义一个传输通道
DEFINE QLOCAL(HUIZHI) USAGE(XMITQ)
#定义一个回执返回的远程通道,且是集群共享队列
DEFINE QREMOTE(TO.HUIZHI) RNAME(TEST2) RQMNAME(QMFX) XMITQ(HUIZHI) CLUSTER(MYCLUSTER)
#定义回执的发送通道
define channel(CH.HUIZHI) chltype(sdr) conname('192.168.153.1(1414)') xmitq(HUIZHI) trptype(tcp)
#定义集群发送通道,与两个完全存储库的通信通道
DEFINE CHANNEL(TO.MQPROD1) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('192.168.153.128(1414)') CLUSTER(MYClUSTER)
DEFINE CHANNEL(TO.MQPROD2) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('192.168.153.129(1414)') CLUSTER(MYClUSTER)
#定义该队列管理器的集群接收通道。注:由于网关队列管理器特殊性,在多个网关下队列管理器名字一样,在集群中若是网关队列管理器下的通道也一样容易造成冲突,因此对两个网关分别启不同的接收通道
#网关1(192.168.153.128)上定义集群接收通道
DEFINE CHANNEL(TO.QMRGRECGC1) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('192.168.153.128(1417)') CLUSTER(MYClUSTER)
#网关2(192.168.153.128)上定义集群接收通道
DEFINE CHANNEL(TO.QMRGRECGC2) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('192.168.153.129(1417)') CLUSTER(MYClUSTER)
#定义接收通道,远端发送数据的通道,该通道名字要告诉对方保持发送和接收的通道名字一致
define channel (MYCLUSTER.QLRECFX) chltype (RCVR) trptype (TCP)

1#网关配置界面
在这里插入图片描述
2#网关配置界面
在这里插入图片描述
在这里插入图片描述

3.4数据发送端队列管理器配置

QMFX数据发送端(192.168.53.1:1414)
发送端是windows环境,通过可视化界面配置即可。
在这里插入图片描述
在这里插入图片描述

四、集群信息

整个集群搭建完毕后,通过队里管理器集群看到。

4.1集群队列信息

在这里插入图片描述

4.2集群发送通道信息

在这里插入图片描述

下一步进入实验场景

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值