ActiveMQ基础01:认识MQ

一、JMS简介

全称:Java Message Service 中文:Java 消息服务。由SUN公司定义
JMS 是 Java 的一套 API 标准,最初的目的是为了使应用程序能够访问现有的 MOM 系统(MOM 是 Message Oriented Middleware 的英文缩写【面向消息的中间件】,指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。);后来被许多现有的 MOM 供应商采用,并实现为 MOM 系统。【常见 MOM 系统包括 Apache 的 ActiveMQ、阿里巴巴的 RocketMQ、IBM 的 MQSeries、Microsoft 的 MSMQ、BEA 的 RabbitMQ 等。(并非全部的 MOM 系统都遵循 JMS 规范)】
基于 JMS 实现的 MOM,又被称为 JMS Provider(支持者)。

ActiveMQ基础01:认识MQ

二、ActiveMQ简介

1、多种语言和协议编写客户端 。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议:OpenWire,Stomp REST,WS Notification,XMPP,AMQP
2、完全支持 JMS1.1 和 J2EE 1.4 规范 (持久化,XA 消息,事务)
3、对 Spring 的支持 ,ActiveMQ 可以很容易内嵌到使用 Spring 的系统里面去通过了常见 J2EE 服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA1.5 resource adaptors 的配置,可以让 ActiveMQ 可以自动的部署到任何兼容 J2EE 1.4 商
业服务器上
4、支持多种传送协议 :in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
5、支持通过 JDBC 和 journal 提供高速的消息持久化
6、从设计上保证了高性能的集群 ,客户端-服务器,点对点
7、支持 Ajax
8、支持与 Axis 的整合, WebServices
9、可以很容易的调用内嵌 JMS provider,进行测试

三、ActiveMQ核心概念(关键词)

1、Destination(目的地)

JMS Provider(消息中间件)负责维护,用于对 Message 进行管理的对象。MessageProducer 需要指定 Destination 才能发送消息,MessageConsumer 需要指定 Destination才能接收消息。

2、Producer(消息生成者)

客户端,生成消息,负责发送 Message 到目的地。应用接口为MessageProducer。在 JMS 规范中,所有的标准定义都在 javax.jms 包中。

3、Consumer【Receiver】(消息消费者)

服务端,处理消息,负责从目的地中消费【处理|监听|订阅】Message。应用接口为 MessageConsumer

4、Message(消息)

消息封装一次通信的内容。常见类型有:StreamMessage、BytesMessage、TextMessage、ObjectMessage、MapMessage,所有传输的消息对象都必须实现Serialization

5、ConnectionFactory(链接工厂)

 用于创建链接的工厂类型。 注意,不能和 JDBC 中的 ConnectionFactory 混淆。

6、Connection(链接)

 用于建立访问 ActiveMQ 连接的类型, 由链接工厂创建. 注意,不能和 JDBC 中的Connection 混淆。

7、Session(会话)

会话, 一次 持久有效有状态 的访问. 由链接创建. 是具体操作消息的基础支撑。

8、Queue & Topic

Queue 是队列目的地,Topic 是主题目的地。都是 Destination 的子接口。
Queue 特点: 队列中的消息,默认只能由唯一的一个消费者处理。一旦处理消息删除。
Topic 特点:主题中的消息,会发送给所有的消费者同时处理。只有在消息可以重复处理的业务场景中可使用。

9、PTP

Point to Point。点对点消息模型。就是基于 Queue 实现的消息处理方式。

10、 PUB & SUB

Publish & Subscribe 。消息的发布/订阅模型。是基于 Topic 实现的消息处理方式。

四、下载资源

ActiveMQ 官网: http://activemq.apache.org

注:

ActiveMQ5.10.x 以上版本必须使用 JDK1.8 才能正常使用。
ActiveMQ5.9.x 及以下版本使用 JDK1.7 即可正常使用。

五、启动ActiveMQ

bin/activemq start    --启动

bin/activemq stop      --停止

bin/activemq status    --查看状态

访问ActiveMQ管理页:http://IP:port/admin

默认用户名/密码:admin/admin   可在配置文件中查看(jetty-realm.properties)

默认jetty端口号:8161

ActiveMQ管理应用adminMQ