mq集群要建传输队列吗_MQ群集的使用(修正版)

本文介绍了MQ的群集功能,这是IBM MQ的特有优势之一。多个应用服务器之间的群集功能不仅使服务器之间能够共享负载,并且当某一系统或网络出现故障时,能够自动进行负载均衡;同时同一群集中的服务器可以位于不同的平台和物理位置。

从版本V5.1开始,MQ就增加了群集(Cluster)的功能,这是IBM MQ的特有优势之一。多个应用服务器之间的群集功能不仅使服务器之间能够共享负载,并且当某一系统或网络出现故障时,能够自动进行负载均衡;同时同一群集中的服务器可以位于不同的平台和物理位置。另外,群集功能使对服务器的管理更加简单高效。

为了能够使大家更好地理解和掌握群集的功能和用法,我们特推出此文章,说明群集在不同场合下的使用技巧及其配置步骤,并给出有关群集的系统管理策略。

首先我们先来谈谈群集的基本概念。

图1

如图1所示,就MQ的点对点的通讯模式而言,我们需要创建相应的对象才能实现两个队列管理器之间的通讯,例如,在发送方队列管理器上,我们要创建一个远程队列(指向远程的目的队列),一个传输队列和一个发送类型的通道;在接收方队列管理器上,我们要创建一个本地队列和一个接收类型的通道。这样,当我们要实现一个网络当中的N个队列管理器之间的两两双向通讯时,我们需要配置的MQ对象的个数就会大大增长,比如,我们需要在每个发送方队列管理器上建立N个远程队列,N个传输队列以及N-1个发送类型的通道,这将组成一个复杂的网状结构,如图2所示。

图2

采用群集的技术之后,可以大大简化系统配置,原因在于位于同一个群集当中的若干队列管理器之间互相通讯时,不需要在每一个队列管理器上创建消息通道、远程队列管理器以及与通道相关的传输队列的定义,相反,我们只需要为在每一个队列器上创建如下两个群集通道(MQ的通道分为三种类型,即服务器与服务器之间的消息通道,客户端与服务器之间的MQI通道,以及用于群集内部通讯的群集通道):

一个群集接收(cluster-receiver)通道,用来从群集中其他队列管理器接收应用消息和有关群集配置更新的消息;

一个群集发送(cluster-sender)通道,用来向群集发送应用消息和有关群集配置更新的消息。

这样,大大减少了位于群基内部的队列管理器上的MQ对象的总数,从而大大简化了系统的配置。如图3所示:

图3

让我们先来了解一下有关群集的一些重要概念:

仓储库(Repository):仓储库是关于群集的信息集合,这些信息包括队列管理器的名字,它们的位置,它们所拥有的通道和队列等。这些信息存储在一个名为SYSTEM.CLUSTER.REPOSITORY.QUEUE中。仓储库又分为完全仓储库(Full Repository)和部分仓储库(Partial Repository)。完全仓储库包含了群集中所有队列管理器的有关群集的全部信息。与之对应,群集中的其他队列管理器拥有与其自身相关和它将要与之通讯的那些队列管理器的信息,成为部分仓储库队列管理器。部分仓储库队列管理器通过查询完全仓储库而得到群集信息的更新,为此,它们通过SYSTEM.CLUSTER.COMMAND.QUEUE队列向完全仓储库发送请求和接收信息。

仓储库队列管理器(Ropository queue manager):群集中拥有完全仓储库信息的队列管理器,一般情况下,我们在群集中选择两个队列管理器作为完全仓储库,互相形成备份。

群集队列(Cluster queue):在群集中共享的队列。宿主队列管理器拥有对该队列的本地定义,被共享后,群集中的其他成员都可以看到这个队列,并且向其发送消息,而不需要定义远程队列。

群集传输队列(Cluster transmission queue):群集中的每个队列管理器都有一个名为SYSTEM.CLUS

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值