读书人

ActiveMQ in Action (七)

发布时间: 2012-11-06 14:07:00 作者: rapoo

ActiveMQ in Action (7)

2.6.7 Wildcards
??? Wildcards用来支持联合的名字分层体系(federated name hierarchies)。它不是JMS规范的一部分,而是ActiveMQ的扩展。ActiveMQ支持以下三种wildcards:

"." 用于作为路径上名字间的分隔符。"*" 用于匹配路径上的任何名字。">" 用于递归地匹配任何以这个名字开始的destination。

?? 作为一种组织事件和订阅感兴趣那部分信息的一种方法,这个概念在金融市场领域已经流行了一段时间了。设想你有以下两个destination:

PRICE.STOCK.NASDAQ.IBM (IBM在NASDAQ的股价)PRICE.STOCK.NYSE.SUNW (SUN在纽约证券交易所的股价)

?? 订阅者可以明确地指定destination的名字来订阅消息,或者它也可以使用wildcards来定义一个分层的模式来匹配它希望订阅的destination。例如:

SubscriptionMeaningPRICE.>Any price for any product on any exchangePRICE.STOCK.>Any price for a stock on any exchangePRICE.STOCK.NASDAQ.*Any stock price on NASDAQPRICE.STOCK.*.IBMAny IBM stock price on any exchange

?

2.6.8 Async Sends
??? ActiveMQ支持以同步(sync)方式或者异步(async)方式向broker发送消息。 使用何种方式对send方法的延迟有巨大的影响。对于生产者来说,既然延迟是决定吞吐量的重要因素,那么使用异步发送方式会极大地提高系统的性能。
??? ActiveMQ缺省使用异步传输方式。但是按照JMS规范,当在事务外发送持久化消息的时候,ActiveMQ会强制使用同步发送方式。在这种情况下,每一次发送都是同步的,而且阻塞到收到broker的应答。这个应答保证了broker已经成功地将消息持久化,而且不会丢失。但是这样作也严重地影响了性能。
??? 如果你的系统可以容忍少量的消息丢失,那么可以在事务外发送持久消息的时候,选择使用异步方式。以下是几种不同的配置方式:

?

2.6.13 Message Transformation
??? 有时候需要在JMS provider内部进行message的转换。从4.2版本起,ActiveMQ 提供了一个MessageTransformer 接口用于进行消息转换,如下:

      6 楼    jd2bs    2010-07-13              java jms真是不好用啊 

难怪caoxg 让我先试用memcacheq 7 楼 王慧迪 2010-09-17 可不可以将textMessage转换成josn数据啊 8 楼 王慧迪 2010-09-17 请知道的务必告诉我,千谢万谢。非常需要 9 楼 whitesock 2010-09-17 TextMessage本身就是保存字符串, 里面当然可以保存json字符串。 10 楼 王慧迪 2010-09-19 whitesock 写道TextMessage本身就是保存字符串, 里面当然可以保存json字符串。
是初学,还不是很懂,能稍微写个小例子让我看懂么?谢谢了 11 楼 王慧迪 2010-09-19 请问是在消息转换器中的toMessage和fromMessage中对Message进行转换么?这样理解对么 12 楼 whitesock 2010-09-19 把TextMessage中可以保存JSON字符串,程序中处理一下即可

读书人网 >软件架构设计

热点推荐