WebSphere MQ Publish/Subscribe主要将流用作对主题名称空间进行分区的方法。几组相关主题可分组到不同的流中,这样可以将不同的安全控件应用于不同的流中,同时更好地均衡代理的发布工作负载。
然而, WebSphere Message Broker 提供了更灵活的控件来达到这两个目的。因此,仅针对 MQRFH 应用程序兼容性支持流的概念。
WebSphere Message Broker 的安全控件让权限可应用于单个主题级别。同样,通过创建为相同或不同输入队列提供服务的发布消息流的更多实例,可以更方便地控制代理的发布工作负载。
WebSphere Message Broker 还允许 MQRFH 客户机应用程序在它们的预订内容和发布内容中指定 MQPSStreamName 命令参数。但是,为了保持 WebSphere MQ Publish/Subscribe的分区特性,流名称仅用于修改主题。
当与消息相关联的流名称不是设置为 SYSTEM.BROKER.DEFAULT.STREAM 时,则将该消息作为以“$SYS/STREAM/<streamname>/”字符串为前缀的消息中提到的主题进行处理。即,对于指定流名称为 StreamX 的 Topic1 的预订,将其作为主题为“$SYS/STREAM/StreamX/Topic1”的预订进行处理。
即使 MQRFH2 发布和预订应用程序本身不允许在发送至 WebSphere Message Broker 代理的消息中指定流名称,但这些应用程序仍可将与流相关的主题作为目标。 要做到这一点,它们必须将适当的流前缀作为主题的前缀。
例如,要预订 WebSphere MQ Publish/Subscribe 网络内 STOCK.STREAM 流上发布的主题“IBM/Latest”,MQRFH2 订户必须指定主题“$SYS/STREAM/STOCK.STREAM/IBM/Latest”。
WebSphere MQ Publish/Subscribe 只允许将与流相关的发布内容发送到与该流同名的队列中。但是,WebSphere Message Broker 允许发布客户机将它们的发布内容发送到消息流中的任何输入队列。
明确指定发布内容中流名称参数的 MQRFH 应用程序可将发布内容发送到任何由 WebSphere Message Broker 服务的发布队列。队列不需要与流同名。
要知道发布内容的接收顺序可能与您希望的有所不同。
每个 Publication 节点都有隐式流命名属性,该属性的缺省值为 true。当 MQRFH 发布内容不包含显式流名称时,此缺省选项会产生与 WebSphere MQ Publish/Subscribe中相同的行为。如果该属性为 false,并且发布内容不包含显式流名称,则采用 SYSTEM.BROKER.DEFAULT.STREAM。
下表概述了可用于 MQRFH 和 MQRFH2 客户机应用程序的选项,这两个客户机应用程序会将消息发布到缺省流或特定的 WebSphere MQ Publish/Subscribe流。流名称 StreamX 用于说明选项。
MQRFH 发布程序 | MQRFH2 发布程序 | |||
---|---|---|---|---|
缺省流 | StreamX | 缺省流 | StreamX | |
MQRFH 订户 | S1,P1 | S2,P2 | S1,P3 | S2,P4 |
MQRFH2 订户 | S3,P1 | S4,P2 | S3,P3 | S4,P4 |
订户注释:
|
||||
发布程序注释:
|