苹果解谜游戏排行:WebSphere MQ V7新功能(5)

来源:百度文库 编辑:九乡新闻网 时间:2024/05/04 06:33:39

WebSphere MQ V7.0在MQI中引入了回调函数 - 新的调用MQCB。传统上我们获取消息是通过使用 MQ 触发器或者是MQGET轮询的方式,而回调函数则采用类似MDB(消息驱动Bean)的方式工作,这使得JMS和MQI客户机可以向队列管理器进行注册,以便在消息到达时可以自动通知他们,从而以异步方式处理消息。在这之前,WebSphere MQ 客户机使用MQGET对消息进行轮询,现在MQI、JMS 和 XMS 客户机都将得益于这个回调:

不再需要客户机应用程序持续不断地对队列管理器进行轮询

释放了部分网络带宽

缩短了从消息到达至响应之间的延迟时间

减少了对服务器和客户机的 CPU 使用

WebSphere MQ V7.0 引入了对 MQI 的选择器支持,消息选择器是 MQOD 或者 MQSD 结构中的一个变长的字符串:

应用程序可以根据消息属性或消息头从队列中选择消息。

可以用标准查询语言(SQL92)构造的查询,通过匹配消息属性中的条件,来检索经过过滤的消息。

可以将选择器与 MQOPEN 和 MQSUB 调用结合使用,检索与所需条件相符的消息。

可以在服务器上运行查询,以便对客户机性能进行优化。

利用选择器,使客户机应用程序不再需要浏览所提供的消息以及比较选择条件并忽略不符的消息。现在只有符合选择条件的消息才会传递给目标客户机。由于不需要向客户机发送无用的且会被客户机丢弃的消息,因此可以提高性能并降低网络带宽的使用。

发布/订阅开发更简化

WebSphere MQ V7 对于 JMS 发布/订阅的支持维持不变,而对于 MQI 编程,首先增加了一个新的数据结构 MQSD(MQ Subscription Descriptor),用来设定主题和订阅属性;其次增加了一个 MQSUB 语句来注册、修改或者注销一个订阅,我们可以不需要在应用程序中创建和设置 MQRFH 和 MQRFH2 这两个消息头了,对于已有的语句增加了新的选项,比如可以通过 MQOPEN 访问主题,可以通过 MQCLOSE 注销一个订阅,通过 MQPUT,MQGET 来发布和接收订阅消息。

性能方面的提升

发布/订阅性能提升

WebSphere MQ V7.0 优化了发布/订阅消息传递的吞吐量。如前所述,由于从 V7 开始在队列管理器中集成了发布和订阅功能,因此不需要像以前一样在队列管理器和独立的发布和订阅组件中进行两次队列持久性发布。通过对持久性发布和订阅消息传递的消息日志记录进行优化,吞吐量可以获得 20% 的提升。对于所有接口(JMS、MQI 和 XMS),性能都能提高到这样的水平。

从可靠性角度,之前的 MQ 版本的发布/订阅的拓扑结构只能是树型结构(hierarchy),即所有的Borker 都通过父子关系连接在一起,而从 V7.0 开始,发布/订阅的拓扑结构既可以是树状的,也可以是通过群集联系在一起的,并且可以独立于已有的基于队列的群集进行定义。从而提供了可扩展性和可用性。发布/订阅的群集和 Message Broker 的 Collective 类似,主题消息可以在群集之间发布。如下图所示:

图6:发布/订阅的树状和群集拓扑结构

WebSphere MQ V7.0利用发布/订阅集群提高了发布和订阅消息传递的可扩展性和可用性,发布和订阅集群使您能通过一组队列管理器来路由发布,从而消除了单点故障。