ActiveMQ
一. 什么是 ActiveMQ
1.ActiveMQ 简介
ActiveMQ 是 Apache 出品的,最流行的,功能强大的开源消息总线。ActiveMQ 是一个完全支持 JMS1.1 和 J2EE 1.4 规范的 JMS Provider 实现,尽管 JMS 规范出台已经是很久的事情了,但是 JMS 在当今的 J2EE 应用中间仍然扮演者特殊的地位。
2.消息队列
消息队列是指在消息的传输过程中保存消息的容器。
3.常见的消息服务应用
①ActiveMQ(Apache)
②RabbitMQ(基于AMQP上完成的)
③RocketMQ(阿里巴巴)
二,消息队列的应用场景
消息队列的主要特点是异步处理,主要目的是减少请求响应时间和解耦。所以主要的使用场景就是将比较耗时而且是同步处理,返回结果的操作作为消息放入消息队列。同时由于使用了消息队列,只要保证消息格式不变,消息的发送方和接受方并不需要彼此联系,也不需要受对方的影响,即解耦合。
①流量的削锋。
秒杀需求…
②异步处理。
用户注册…
③应用解耦合。
订单处理…
三,JMS
- 什么是JMS
JMS(Java Messaging Service) 是 Java 平台上有关面向消息中间件的技术规范,它便于消息系统中的 Java 应用程序进行消息交换,并且通过提供标准的产生,发送,接受消息的接口,简化企业应用的开发。
2.JMS 模型
①点对点模型(Point To Point)
生产者发送一条消息到 queue,只有一个消费者能收到。
②发布订阅模型(Publish/Subcribe)
发布者发送到topic 的消息,只有订阅了 topic 的订阅者才会收到消息。
四,ActiveMQ 的安装
五,ActiveMQ 术语
1 Destination
目的地,JMS Provider (消息中间件)负责维护,用于对 Message 进行管理的对象。MessageProducer 需要指定 Destination 才能发送请求,MessageReceiver 需要指定 Destination 才能接受消息。
2 Producer
消息生成者,负责发送 message 到目的地。
3 Consumer | Receiver
消息消费者,负责从目的地中消费【处理|监听|订阅】 Message。
4 Message
消息,消息封装一次通信的内容
六,ActiveMQ 应用
1 ActiveMQ 常用 API 简介
下述 Api 都是接口类型,定义在 javax.jms 包中 是 JMS 标准接口定义。
1.1 ConnectionFactory
链接工厂,用于创建连接的工厂类型。
1.2 Connection
链接,用于建立访问 ActionMQ 链接的类型,由链接工厂创建。
1.3 Session
会话,一次持久有效的状态的访问,由链接创建。
1.4 Destination & Queue
目的地,用于描述本次访问 ActiveMQ 的消息访问目的地,即 ActiveMQ 服务中的具体队
列,由会话创建。
interface Queue extends Destination
1.5 MessageProducer
消息生成者,再一次有效会话中,用于发送消息给 ActiveMQ 的服务的工具,由会话创建。
1.6 MessageConsumer
消息消费者【消息订阅者,消息处理者】再一次有效会话中,用于从 ActiveMQ 服务中获取
消息的工具,由会话创建。
1.7 Message
消息 ,通过消息生成者向 ActiveMQ 服务发送消息时使用的数据载体对象或消息消费者从
ActiveMQ 服务中获取消息时使用的数据载体,是所有消息具体类型的顶级接口,可以通过会话创建或通过从 ActiveMQ 服务中获取。
2 JMS-HelloWorld
2.1 处理文本消息
2.1 处理对象消息
3 JMS - 实现队列服务监听
3.1 创建消息生产者
3.2 消息消费者
4 Topic 模型
@Burial_DH 有道云笔记!!!