为中小企业定制 WebSphere MQ V7

本文描述了您在中小企业(SMB)实施基于 WebSphere MQ 的解决方案时可能遇到的常见挑战,并向您展示如何去克服这些挑战。

Mohit Arora, 解决方案开发人员, IBM

 Mohit Arora 的照片Mohit Arora 是位于印度邦加罗尔的 IBM Software Lab 的 Lab Services 团队的一名高级软件工程师。他在 IBM 工作了 6 年,致力于各种中间件技术。



Amit M. Mangalvedkar, 高级软件工程师, IBM

Amit M. Mangalvedkar 的照片Amit M. Mangalvedkar 是位于印度邦加罗尔的 IBM Software Lab 的 Lab Services 团队的一名高级软件工程师。他在 IBM 工作了 10 年,致力于涉及各种中间件技术的产品开发和客户接洽。



2011 年 9 月 19 日

免费下载:IBM® WebSphere® MQ V7.0.1 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

为了向您展示如何处理在中小企业(SMB)实施基于 IBM® WebSphere® MQ 的解决方案时遇到的挑战,本文使用一个总部和多个分支机构或者零售店的通用场景,每个机构都拥有各自的 WebSphere MQ 服务器。对于许多中小企业来说,后端基础架构投资可能会受到约束,因此您会面临网络故障或连接缓慢的问题。但是在深入研究这样一个环境的挑战之前,先了解一下健壮且理想的 WebSphere MQ 环境的特征:

  • VPN 基础架构
  • 静态 IP 地址
  • 单一的 ISP
  • 高带宽的网络速度
  • 监测工具,比如 IBM Tivoli® Omegamon for XE Messaging
  • 建议的硬件配置

如上所述,以下是 SMB 中存在的两个最普遍的网络问题:

  • Internet 连通性故障 ——— 没有投资无线网络连接的 SMB 一般会选择使用静态 IP 地址的不同服务提供商的多个连接。当其中一个连接发生故障时,SMB 会切换(有时是手动切换)到另一个服务提供商的连接。
  • 总部与零售店之间的通信缓慢 ——— 对于该问题,SMB 通常会优化应用程序来发送最小数据至分支服务器,并将其他通信推迟到深夜或其他低使用率期间。这样的安排可能需要重要的应用程序定制。

本文的剩余部分描述了以下次优条件、如何解决相关问题,以及如何使用 WebSphere MQ Performance Monitor (SupportPac MP08)。

  • 动态 IP 地址
  • 多个 ISP
  • 总部与零售店之间使用低带宽网络速度

在两台远程服务器间配置 WebSphere MQ

接收端的动态 IP 地址

考虑两台 WebSphere MQ 服务器之间的典型 interqueue 通信场景,使用发送方-接收方通道,一端是总部,一端是零售店:

队列间通信
队列间通信

在该场景中,队列管理器 HQ.QM 给队列管理器 STORE.QM 发送一条消息。队列管理器 HQ.QM 具有以下 WebSphere MQ 对象:

  • REMOTEQ(远程队列)
  • TRANSQ(传输队列)
  • HQ.STORE.CNL(从 HQ.QM 到 STORE.QM 的发送方通道)

同样地,队列管理器 STORE.QM 也具有以下 WebSphere MQ 对象:

  • LOCALQ(本地队列)
  • HQ.STORE.CNL(从 HQ.QM 到 STORE.QM 的接收方通道)

配置该设置的 mqsc 命令(1414 为监听端口号)如下所示:

发送方通道定义
define channel (HQ.STORE.CNL) chltype(SDR) + 
conname('192.168.1.2(1414)') +
xmitq(TRANSQ)
接收方通道定义
define channel (HQ.STORE.CNL) chltype(rcvr)

如果接收方(在我们的例子中是指零售店服务器)有一个分配给它的动态 IP 地址,发送方系统几乎不可能与接收方系统进行通信,而且发送方通道将保持在重试模式 ——— SMB 的一个常见问题。

发送方-接收方通道

发送方-接收方通道中的目标系统的主机名/IP 地址应该是已知的,并且应该在发送方通道中进行配置。

发送方通道无法通信
发送方通道无法通信

您可以使用请求方-服务器通道在 WebSphere MQ 中让接收系统发起通信,进而解决该问题:

请求方-服务器通道

在请求方-服务器通道中发送系统的主机名/IP 地址应该是已知的,并且应该在请求通道中进行配置(消息的目标系统)

请求方-服务器通道
请求方-服务器通道

在请求方-服务器通道中,接收系统(零售店服务器)发起连接。一旦连接成功,消息将从总部服务器传送至零售店服务器。队列管理器 HQ.QM 具有以下 WebSphere MQ 对象:

  • REMOTEQ(远程队列)
  • TRANSQ(传输队列)
  • HQ.STORE.CNL(服务器通道)

同样地,队列管理器 QM2 也具有以下 WebSphere MQ 对象:

  • LOCALQ(本地队列)
  • HQ.STORE.CNL(请求方通道)

以下是用来创建该配置的 MQSC 命令:

服务器通道定义
define channel (HQ.STORE.CNL) chltype(SVR) +
xmitq(TRANSQ)
请求方通道定义
define channel (HQ.STORE.CNL) chltype(RQSTR) +
conname('192.168.1.1(1414)')

其他可能的通道组合

除了发送方-接收方和请求方-服务器通道之外,其他可能的组合包括集群发送方-群集接收方、服务器-接收方和请求方-发送方通道。

发送方-接收方通道对和请求方-服务器通道在功能方面有着很大的区别 ——— 更多信息请参阅 WebSphere MQ V7 信息中心

总部有多个 ISP

上述场景涉及到请求方-服务器通道,只要发送方系统的 IP 地址(192.168.1.1)不变,该通道就能工作正常。但是如果发送方系统有多个 ISP,并且其中一个出现故障,系统切换到另一个 ISP。在这种情况下,即使发送方有静态 IP 地址,每个 ISP 可能会从不同的域分配 IP 地址。请求方通道将再次无法发起到服务器通道的请求,并进入重试模式,因为 HQ 服务器系统的 IP 地址可能已经发生改变。

用于已改变 IP 地址的请求方通道
用于已改变 IP 地址的请求方通道

您可以通过在 CONNAME 中提供多个 IP 地址和端口号来解决该问题,CONNAME 是 WebSphere MQ V7 Refresh 1 (WebSphere MQ V7.0.1) 中的一个新特性。服务器通道的通道定义保持不变:

服务器通道定义
define channel (HQ.STORE.CNL) chltype(SVR) +
xmitq(TRANSQ)

然而,请求方通道的通道定义变为:

请求方通道定义
define channel (HQ.STORE.CNL) chltype(RQSTR) + 
conname('192.168.0.1(1414),192.168.0.3(1414)')

因此,即使在发送方有多个 ISP 提供服务,您仍可以将他们添加到请求方通道的 CONNAME 设置中,并以逗号进行分隔:

发送方有多个 ISP
发送方有多个 ISP

在该配置中,将以轮询方式尝试所有的 IP 地址。一旦请求方通道与服务器通道建立了连接,便会进入绑定状态,并最终进入运行模式。

低带宽速度

默认情况下,WebSphere MQ 允许提交长达 4MB 的消息至某个队列,您可以在不使用分段的情况下将该限制增加至 100MB。WebSphere MQ 默认也允许最多 5000 条消息,您同样也可以增加该限制。假设 3004MB 的消息通过宽带速度为 1Mbps 的网络发送。传输大约需要 9600 秒或约 2 小时 40 分钟。随着带宽速度的下降,传输时间迅速增加:如果带宽速度下降至 256Kbps,传输时间将增加为 10 小时 40 分钟。

这种情况使得通道级压缩变得非常重要。它并不涉及许多配置方面的更改,但却大大提高传输速度。例如 95% 的压缩比(如果 WebSphere MQ 消息是 ASCII 文本格式这是可行的)。在这种情况下,一个 4MB 的消息被压缩至 200KB,而上述 3004MB 消息的传输在 1Mbps 带宽速度下将只需要大约 8 分钟,在 256kbps 带宽速度下需要 32 分钟。

要实现压缩,必须向发送方、接收方或请求方以及服务器通道应用相同的压缩算法,您可以使用 WebSphere MQ Explorer 或 runmqsc 脚本来实现:

使用 WebSphere MQ Explorer 进行压缩

默认情况下,通道并没有启用任何压缩算法,如下所示:

修改通道属性进行压缩
修改通道属性进行压缩

要启用压缩,单击 Message Compression 旁边的 Edit 按钮,将会打开一个下拉列表显示各种压缩算法:

受支持的多种压缩算法
受支持的多种压缩算法
  • RLE ——— 运行长度编码压缩。如果相同的数据值出现在一个连续的块中,该块将被替换为一个表示运行和数据的数字。
  • ZLIBFAST ——— 快速压缩算法
  • ZLIBHIGH ——— 高比率的压缩
  • ANY ——— 可以使用上述三种算法中的任何一种

您也可以选择多个压缩算法,按照优先次序尝试这些算法。另一端必须使用同样的压缩算法。

按优先次序进行压缩
按优先次序进行压缩

使用 runmqsc 脚本进行压缩

您可以使用 runmqsc 达到同样的效果。以下的 runmqsc 脚本修改请求方和服务器通道的通道定义:

请求方通道定义
alter channel(HQ.STORE.CNL) +
chltype(RQSTR) +
COMPMSG(ZLIBFAST,ZLIBHIGH,RLE,NONE)
服务器通道定义
alter channel(HQ.STORE.CNL) +
chltype(RQSTR) +
COMPMSG(ZLIBFAST,ZLIBHIGH,RLE,NONE)

虽然请求方通道允许使用所有的压缩算法(ZLIBHIGH、ZLIBFAST、RLE、ANY 以及 NONE),但是服务器通道并不允许使用所有算法。

压缩算法

并非所有的通道都允许使用所有的压缩算法。请求方通道允许使用 ZLIBHIGH、ZLIBFAST、RLE 和 ANY。

监视工具

本节将向您展示如何使用 WebSphere MQ Performance Monitor (WebSphere MQ SupportPac MP08)。

安装和配置

  1. 下载 WebSphere MQ Performance Monitor
  2. 按照 WebSphere MQ Performance Monitor 文档 的说明来安装和配置 WebSphere MQ Performance Monitor。

监视

WebSphere MQ Performance Monitor 可以为队列管理器收集和分析队列、通道以及 MQI 调用的性能数据。系统管理员可以使用 WebSphere MQ Explorer 本身来监视短期的 WebSphere MQ 系统状态。

WebSphere MQ Performance Monitor 包含以下两个组件:

  • Performance Monitor Agent for WebSphere MQ for Windows ——— 在 HO 队列管理器服务器上安装该组件。它从 WebSphere MQ 服务器获取队列管理器数据并将其发送到性能监视插件。如果 HO 服务器上有多个队列管理器,那么每个队列管理器都需要运行代理,这意味着一旦安装该组件,那么您就需要为每个需要监视的队列管理器来配置它。
  • Performance Monitor Plug-in for WebSphere MQ for Windows and Linux ——— 该组件从监视代理中获取数据,并以图形格式显示短期趋势分析。该插件安装在 WebSphere MQ 驻留的服务器上。

WebSphere MQ Performance Monitor 在 WebSphere MQ Explorer 中提供短期趋势分析:

  • 最近的应用程序记帐(用于队列管理器)
  • 最近的 MQI 统计(用于队列管理器)
  • 最近的队列统计(用于队列)
  • 最近的队列记帐(用于队列)
  • 最近的 MQI 队列统计(用于队列)
  • 最近的通道性能(用于通道)
  • 最近的 MQI 通道统计(用于通道)

有关插件和代理的更详细的信息,参见 WebSphere MQ Performance Monitor 文档

以下列出的是一些由插件执行的分析快照:

通道级监视

通道级监视为各种时间间隔提供各种属性的图形展示,例如发送和接收的字节和缓冲、传输速度以及短期和长期的压缩率。

通道级监视
通道级监视

队列级监视

队列级监视为给定的时间间隔提供各种频率属性的图形展示,例如打开率、关闭率、获取字节比率、放置字节比率以及浏览率:

队列级监视 1
队列级监视 1

队列级监视也提供诸如当前深度、最高深度、消息放置、消息读取以及消息浏览等的属性:

队列级监视 2
队列级监视 2

结束语

本文描述了在 SMB 环境中使用 WebSphere MQ 的一些常见场景,并讨论了目的端动态 IP 地址、多个 ISP、低带宽的问题。本文还解释了 SMB 环境中的一些故障排除技术,并向您展示了如何使用 WebSphere MQ Performance Monitor 进行监视。

参考资料

学习

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=758291
ArticleTitle=为中小企业定制 WebSphere MQ V7
publish-date=09192011