
JMS
iamfafa
这个作者很懒,什么都没留下…
展开
-
深入掌握JMS(二):一个JMS例子
前一讲简单的介绍了一下JMS的基本概念,这一讲结合一个例子让大家深入理解前一讲的基本概念.首先需要做的是选择一个JMS提供者,如果在JavaEE环境中可以不用考虑这些.我们选择ActiveMQ,官方地址: http://activemq.apache.org/.网上有很多介绍ActiveMQ的文档,所以在这里就不介绍了.按照上一讲的这个简图,ConnectionFactory---->Connection--->Session--->MessageDestination+Session-----------转载 2011-03-21 11:50:00 · 1440 阅读 · 0 评论 -
深入掌握JMS(四):实战Queue
Queue实现的是点到点模型,在下面的例子中,启动2个消费者共同监听一个Queue,然后循环给这个Queue中发送多个消息,我们依然采用ActiveMQ。import javax.jms.Connection; import javax.jms.DeliveryMode; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.M转载 2011-03-21 12:56:00 · 1377 阅读 · 1 评论 -
深入掌握JMS(十一):TemporaryQueue和TemporaryTopic
<br />TemporaryQueue和TemporaryTopic,从字面上就可以看出它们是“临时”的目的地。可以通过Session来创建,例如: <br /><br />TemporaryQueue replyQueue = session.createTemporaryQueue(); <br /><br />虽然它们是由Session来创建的,但是它们的生命周期确实整个Connection。如果在一个Connection上创建了两个Session,则一个Session创建的TemporaryQue转载 2011-03-21 16:57:00 · 2897 阅读 · 2 评论 -
深入掌握JMS(九):Selector
<br />前面的例子中创建一个消息消费者使用的是: <br />sesssion.createConsumer(destination) <br /><br />另外,还提供了另一种方式: <br />sesssion.createConsumer(destination, selector) <br /><br />这里selector是一个字符串,用来过滤消息。也就是说,这种方式可以创建一个可以只接收特定消息的一个消费者。Selector的格式是类似于SQL-92的一种语法。可以用来比较消息头信息和属转载 2011-03-21 16:38:00 · 2153 阅读 · 0 评论 -
深入掌握JMS(八):JMSReplyTo
在下面的例子中,首先创建两个Queue,发送者给一个Queue发送,接收者接收到消息之后给另一个Queue回复一个Message,然后再创建一个消费者来接受所回复的消息。import javax.jms.Connection;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageConsumer;import javax.jms.MessageListener;import javax转载 2011-03-21 16:36:00 · 1227 阅读 · 0 评论 -
深入掌握JMS(七):DeliveryMode例子
<br />在下面的例子中,分别发送一个Persistent和nonpersistent的消息,然后关闭退出JMS。<br /> <br />import javax.jms.Connection;import javax.jms.DeliveryMode;import javax.jms.MessageProducer;import javax.jms.Queue;import javax.jms.Session;import org.apache.activemq.ActiveMQC转载 2011-03-21 16:02:00 · 2108 阅读 · 0 评论 -
深入掌握JMS(六):消息头
<br />一个消息对象分为三部分:消息头(Headers),属性(Properties)和消息体(Payload)。<br /> <br />对于StreamMessage和MapMessage,消息本身就有特定的结构,而对于TextMessage,ObjectMessage和BytesMessage是无结构的。<br />一个消息可以包含一些重要的数据或者仅仅是一个事件的通知。<br />消息的Headers部分通常包含一些消息的描述信息,它们都是标准的描述信息。<br />包含下面一些值:<br />转载 2011-03-21 15:11:00 · 1391 阅读 · 0 评论 -
深入掌握JMS(五):实战Topic
<br />与Queue不同的是,Topic实现的是发布/订阅模型,在下面的例子中,启动2个消费者共同监听一个Topic,然后循环给这个Topic中发送多个消息。 <br /> <br /> <br />import javax.jms.Connection; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageLi转载 2011-03-21 13:41:00 · 1198 阅读 · 0 评论 -
深入掌握JMS(一):JSM基础
1.JMS基本概念JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业应用的开发。它支持两种消息通信模型:点到点(point-to-point)(P2P)模型和发布/订阅(Pub/Sub)模型。P2P模型规定了一个消息只能有一个接收者;Pub/Sub模型允许一个消息可以有多个接收者。对于点到点模型,消息生产者产生一个消息后,把这个消息发送到一个Queue(队列)中,然后消息接收者再从这个Queue中读取,一旦这个消息被一个接收者读取之后,它就转载 2011-03-21 11:36:00 · 2341 阅读 · 0 评论 -
深入掌握JMS(三):MessageListener
<br />消息的消费者接收消息可以采用两种方式: <br /><br />1、consumer.receive() 或 consumer.receive(int timeout); <br />2、注册一个MessageListener。<br />采用第一种方式,消息的接收者会一直等待下去,直到有消息到达,或者超时。<br />后一种方式会注册一个监听器,当有消息到达的时候,会回调它的onMessage()方法。<br /> <br />下面举例说明: <br /> <br />MessageConsu转载 2011-03-21 12:34:00 · 1551 阅读 · 0 评论 -
深入掌握JMS(十):JMSCorrelationID与Selector
<br />前面讲过JMSCorrelationID主要是用来关联多个Message,例如需要回复一个消息的时候,通常把回复的消息的JMSCorrelationID设置为原来消息的ID。<br /> <br />在下面这个例子中,创建了三个消息生产者A,B,C和三个消息消费者A,B,C。生产者A给消费者A发送一个消息,同时需要消费者A给它回复一个消息。B、C与A类似。 <br /><br />简图如下: <br />生产者A-----发送----〉消费者A-----回复------〉生产者A <br />生转载 2011-03-21 16:54:00 · 5500 阅读 · 1 评论