MQ入门
来源:互联网 发布:csgo cpu优化 编辑:程序博客网 时间:2024/04/30 05:57
一、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公共点对点域发布/订阅域ConnectionFactoryQueueConnectionFactoryTopicConnectionFactoryConnectionQueueConnection
TopicConnection
Destination
Queue
Topic
Session
QueueSession
TopicSession
MessageProducer
QueueSender
TopicPublisher
MessageConsumer
QueueReceiver
TopicSubscriber
- mq入门
- MQ入门
- MQ入门
- MQ应用入门
- MQ入门摘录
- mq入门实例
- mq入门实例
- active mq 入门实例
- MQ入门简介
- WebSphere MQ 入门指南
- MQ的入门指南
- MQ入门介绍
- WebSphere MQ 开发快速入门
- WebSphere MQ 入门指南-1
- 消息中间件及WebSphere MQ入门
- 消息中间件及WebSphere MQ入门
- 消息中间件及WebSphere MQ入门
- 消息中间件及WebSphere MQ入门
- shiro 配置说明
- 小白学习R语言——回归分析实例之男女身高体重
- 9. Palindrome Number
- Kafka Consumer的底层API- SimpleConsumer
- leetcode:Symmetric Tree 【Java】
- MQ入门
- POM 项目对象模型及 POM.XML文件结构解析
- 【bzoj1132】[POI2008]Tro 计算几何
- CcwpAlipayNewOrderClass---selenium下单-alipay
- Swift 实践之简单购物(UITableView的使用)
- AndridStudio编译错误之——libpng error: CgBI: unhandled critical chunk
- SeaJS
- linux makefile (1)
- 视音频数据处理入门:UDP-RTP协议解析