MQ入门

一、JMS规范

1、连接工厂:客户用来创建连接对象。

2、连接:虚拟连接客户与JMS提供者。

3、会话:生产和消费信息的一个单线程上下文,用于创建product、consume、message。

4、目的地:客户用来指定它生产的消息的目标和它消费的消息的来源的对象

点对点(PTP)消息传递域的特点: 目的地——>queue

每个消息只能有一个消费者;

无论消费者在生产者发送消息的时候是否处于运行状态,它都可以提取消息。

发布/订阅消息传递域的特点: 目的地——>topic

每个消息有多个消费者;

订阅一个主题的消费者只能消费自它订阅之后发布的消息,持久订阅允许消费者消费它在未处于激活状态时发送的消息。

5、消息生产者

6、消息消费者:

同步消费:调用receive方法从目的地中显式提取消息,receive方法可以一直阻塞到消息到达

异步消费:注册消息监听器,以定义在消息到达时所采取的动作

7、消息:消息头、消息属性、消息体(TextMessage、MapMessage、BytesMessage、StreamMessage、ObjectMessage)。

二、JMS的可靠性机制

1、成功消费:客户接收消息、客户处理消息、消息被确认

消息何时被确认取决于创建会话是的应答模式(acknowledgement mode):

Session.AUTO_ACKNOWLEDGE:从receive或者MessageListener.onMessage返回时就自动确认客户收到的消息

Session.CLIENT_ACKNOWLEDGE:确认一个被消费的消息将自动确认所有已被消费的消息

Session.DUPS_ACKNOWLEDGE:会话迟钝的确认消息的提交

2、持久性

PERSISTENT:指示JMS provider持久保存消息,以保证消息不会因为JMS provider的失败而丢失。 

NON_PERSISTENT:不要求JMS provider持久保存消息。 

3、优先级:0(最低)——9(最高),默认是4。

4、消息默认永不过期,可以设置消息在一段时间后过期。

5、创建临时目的地:createTemporaryQueue()、createTemporaryTopic()。

6、持久订阅:

生产者先用PERSISTENT提交消息,客户通过createDurableSubscriber(topic,订阅名称)创建持久订阅;

一段时间后再次调用createDurableSubscriber方法,会激活该持久订阅,JMS provider会向客户发送客户处于非激活状态时所发布的消息;

持久订阅会一直保留直到调用会话上的unsubscribe方法。

7、本地事务

在一个JMS客户端,可以使用本地事务来组合消息的发送和接收。JMS Session接口提供了commit和rollback方法,事务性的会话总是牵涉到事务处理中,commit或rollback方法一旦被调用,一个事务就结束了,而另一个事务被开始。消息的生产和消费不能包含在同一个事务中。

三、消息传递域的相应接口

JMS公共 点对点域 发布/订阅域
ConnectionFactory QueueConnectionFactory TopicConnectionFactory
Connection
QueueConnection
TopicConnection
Destination
Queue
Topic
Session
QueueSession
TopicSession
MessageProducer
QueueSender
TopicPublisher
MessageConsumer
QueueReceiver
TopicSubscriber


你可能感兴趣的:(ActiveMQ)