WEB开发网
开发学院服务器服务器方案 MQ群集的使用 阅读

MQ群集的使用

 2008-12-01 11:04:38 来源:WEB开发网   
核心提示: 这一点是需要注意的,如果在测试环境中,MQ群集的使用(9),不慎更改了系统时间,可能会由于这个原因导致群集不可用,通过本文对群集功能及使用的简单介绍,希望大家在实际应用中能够采用群集的解决方案,3.2.3关于共享队列实例和消息的走向 群集允许定义同一个队列的多个队列实例(queue ins

这一点是需要注意的,如果在测试环境中,不慎更改了系统时间,可能会由于这个原因导致群集不可用。

3.2.3关于共享队列实例和消息的走向

群集允许定义同一个队列的多个队列实例(queue instance),每一个位于不同的队列管理器上。当我们把消息发到这些实例时,MQ系统来决定将其路由到哪个队列管理器的哪个队列上。例如:在我们给出的第一个例子中,在QMGRI上可以看到两个INPUTQ的实例,它们的宿主队列管理器分别是QMGR1和QMGR2。当我们在QMGRI上向INPUTQ发送消息时,消息被会分发到其他两个队列管理器上。这里我们需要注意以下几个要点:

1) 如果在发送消息的应用程序本地的队列管理器上有队列实例存在,即该队列管理器是队列实例的宿主队列管理器时,消息将只会被发到该队列,而不会被分发到其他队列实例上。还以我们给出的第一个例子为例,如果在QMGRI上也存在INPUTQ队列,则消息将会全部被发往该队列。

2) 关于消息的亲合特性(affinity),如果对消息顺序有要求或者若干个消息必须进行逻辑组合处理,那么我们就不能将这些消息分别路由到不同队列管理器上,这时,我们需要使用BIND_ON_OPEN选项来实现这种需求。

3.2.4 关于打开队列选项的使用

为了使用群集的负载均衡功能,MQ 的API接口函数MQOPEN增加了两个新的选项:MQOO_BIND_ON_OPEN和MQOO_BIND_NOT_FIXED。注意,它的缺省值为MQOO_BIND_ON_OPEN,这样对每一次MQOPEN操作,负载均衡算法将只被调用一次,从而导致消息将只被发送到其中一个队列实例中。因此,大家如果希望使用轮循处理机制,必须将该选项设置为MQOO_BIND_NOT_FIXED。

通过本文对群集功能及使用的简单介绍,希望大家在实际应用中能够采用群集的解决方案,以发挥MQ产品的更多优势。

上一页  4 5 6 7 8 9 

Tags:MQ 群集 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接