吞吐量

WebSphere MQ Publish/Subscribe中,单个线程处理每个流队列上的发布内容。这保证了处理队列中发布内容的顺序。

当考虑 WebSphere Message Broker 代理域中发布内容的吞吐量时,还必须考虑消息发布顺序的重要性。 增加吞吐量的技术不会必然地保证顺序。

WebSphere Message Broker 支持两种增加吞吐量的方法:
  1. 可以通过设置 MQInput 节点的更多实例属性来用更多线程配置消息流。 该属性使代理可以调度更多的线程来从输入队列中读取消息,因而允许代理同时处理该队列的发布内容。必须保证流(输入)队列设置了共享属性(WebSphere MQ Publish/Subscribe要求流队列设置非共享属性)。

    如果多个线程处理来自单个队列的消息,则不能保证发布内容将以它们在输入队列中的放置顺序传递到订户。 但是,WebSphere Message Broker 提供的方法允许在保持所需顺序的情况下,同时处理多个发布内容。

    可将 MQInput 节点的排序方式属性设置为 By User ID 值。这确保发布内容按照给定用户的传递顺序发送到代理。设置该属性后,对携带 MQMD 中给定 UserIdentifier 字段的消息进行处理时,如果对该消息流提供服务的任何其他线程正在处理携带相同 UserIdentifier 的消息时,则前一消息处理会挂起。

    如果所有发布应用程序在同一用户标识下运行,则享受不到运行消息流的更多实例的益处。当发布应用程序连接到代理队列管理器的远程队列管理器时,可能出现这种情况。来自这些远程发布的消息经由一个通道到达代理,该通道可能已设置为用于插入该通道程序的用户标识,该标识用于替代原始客户机的用户标识。请参阅《WebSphere MQ Intercommunications》,获取关于如何设置 PUTAUT 通道属性以更改缺省通道行为的更多信息。

  2. 可以配置一个或多个从不同队列读取发布内容的附加消息流(不是实例)。还必须更新一些发布应用程序,以便发布到新队列。这样就可以分离流,从而分散工作负载。

    如果决定使用该方法增加吞吐量,则必须考虑这种方法对发布内容传递顺序的影响。尤其必须确保根据发布主题分离发布应用程序,以便维护每个主题的顺序(如果顺序很重要)。如果应用程序发布到相同主题的不同队列(消息流),则无法保证顺序。

    如果将发布应用程序更新为把发布内容发送到新队列,而新列队的名称不同于应用程序发布的流名称,则还必须使用 MQPSStreamName 参数更新这些应用程序,使它们在发布内容中显式地包含流名称。

    不必修改指定流参数的发布应用程序,因为这个参数具有优先权。 但是,如果发布应用程序不指定流参数,则由消息流中 Publication 节点的隐式流命名属性设置确定该行为。
    • 如果该属性设置为 false,则采用缺省流。
    • 如果该属性设置为 true,则假设流名称与流输入队列的名称相同。
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
aq19900_