ActiveMQ入门——基本概念了解
来源:互联网 发布:lamp一键安装包 linux 编辑:程序博客网 时间:2024/06/05 16:48
基本构件(组件)
ConnectionFactory
创建Connection对象的工厂,针对两种不同的jms消息模型,分别有QueueConnectionFactory和TopicConnectionFactory两种。
可以通过JNDI来查找ConnectionFactory对象。Destination
Destination的意思是消息生产者的消息发送目标或者说消息消费者的消息来源。对于消息生产者来说,
它的Destination是某个队列(Queue)或某个主题(Topic);对于消息消费者来说,它的Destination也是某个队列或主题(即消息来源)。
所以,Destination实际上就是两种类型的对象:Queue、Topic可以通过JNDI来查找Destination。Connection
Connection表示在客户端和JMS系统之间建立的链接(对TCP/IP socket的包装)。Connection可以产生一个或多个Session。
跟ConnectionFactory一样,Connection也有两种类型:QueueConnection和TopicConnection。Session
Session是我们操作消息的接口。可以通过session创建生产者、消费者、消息等。Session提供了事务的功能。当我们需要使用session发送/接收多个消息时,
可以将这些发送/接收动作放到一个事务中。同样,也分QueueSession和TopicSession。消息的生产者
消息生产者由Session创建,并用于将消息发送到Destination。同样,消息生产者分两种类型:QueueSender和TopicPublisher。
可以调用消息生产者的方法(send或publish方法)发送消息。消息消费者
消息消费者由Session创建,用于接收被发送到Destination的消息。两种类型:QueueReceiver和TopicSubscriber。
可分别通过session的createReceiver(Queue)或createSubscriber(Topic)来创建。当然,也可以session的creatDurableSubscriber方法来创建持久化的订阅者。MessageListener
消息监听器。如果注册了消息监听器,一旦消息到达,将自动调用监听器的onMessage方法。EJB中的MDB(Message-Driven Bean)就是一种MessageListener。
各组件关系
连接工厂-->生成连接-->创建会话(创建生产者和消费者) 消息 消息生产者---------------->目的地------------->消费者 1 --------(1)PTP(Queue)---------- 1 1 --------(2)pub/sub(Topic)------ n
如果你希望发送的每个消息都应该被成功处理的话,那么你需要P2P模式。
消费消息有两种方式:
- 同步消费:receive从目的地获取消息,阻塞直到数据到达
- 异步消费:注册消息监听器,定义数据到达时的动作
消息:
**消息头**:getter和setter**消息属性**:除消息头以外的消息信息**消息体**:JMS定义的消息类型:TextMessage、MapMessage、ByteMessage、StreamMessage、ObjectMessage
编程模式
消息产生者向JMS发送消息的步骤
- 创建连接使用的工厂类JMS ConnectionFactory
- 使用管理对象JMS ConnectionFactory建立连接Connection
- 使用连接Connection 建立会话Session
- 使用会话Session和管理对象Destination创建消息生产者MessageSender
- 使用消息生产者MessageSender发送消息
消息消费者从JMS接受消息的步骤
- 创建连接使用的工厂类JMS ConnectionFactory
- 使用管理对象JMS ConnectionFactory建立连接Connection
- 使用连接Connection 建立会话Session
- 使用会话Session和管理对象Destination创建消息消费者MessageReceiver
- 使用消息消费者MessageReceiver接受消息,需要用setMessageListener将MessageListener接口绑定到MessageReceiver
消息消费者必须实现了MessageListener接口,需要定义onMessage事件方法。
- ActiveMQ入门——基本概念了解
- activeMQ笔记(二)——activeMQ的基本概念
- ActiveMQ深入浅出(一)——JMS基本概念
- Openssl入门--1--基本概念了解
- MySQL 基本概念了解及入门
- ActiveMQ学习(一)——MQ的基本概念
- ActiveMQ学习(一)——MQ的基本概念
- ActiveMQ学习(一)——MQ的基本概念
- ActiveMQ学习(一)——MQ的基本概念
- ActiveMQ系列—JMS规范中的几个基本概念
- ActiveMQ 基本概念
- ActiveMQ学习总结(1)——ActiveMQ快速入门
- ActiveMQ学习总结(2)——ActiveMQ入门实例教程
- ActiveMQ——1、JMS简介与ActiveMQ入门
- ActiveMQ学习总结(1)——ActiveMQ快速入门
- activemq深入了解—队列模式手动控制消费
- activemq深入了解—队列模式手动控制消费
- activeMQ深入了解—队列模式手动控制消费
- 关于穷举、深搜、广搜的思考。
- C++ 模板
- JS遗漏点
- Scala中的元组
- OpenCv-缩放比例为2的图像处理-cvPyrDown
- ActiveMQ入门——基本概念了解
- 关于GestureDetector使用详解的一个博客
- 决斗场
- 20171109冒泡排序 插入排序 基数排序算法问题
- Java 关于多态中,父类引用子类对象中的“引用”解释,释义
- [转] quanke 设计模式Java版
- 如何计算系统用户并发数,系统最大并发数
- caffe 利用python API 将数据转成lmdb格式的数据
- python判断一个数是否是回数