ActiveMQ
1). ActiveMQ
ActiveMQ是Apache所提供的一个开源的消息系统,完全采用Java来实现,因此,它能很好地支持J2EE提出的JMS(Java Message Service,即Java消息服务)规范。JMS是一组Java应用程序接口,它提供消息的创建、发送、读取等一系列服务。JMS提供了一组公共应用程序接口和响应的语法,类似于Java数据库的统一访问接口JDBC,它是一种与厂商无关的API,使得Java程序能够与不同厂商的消息组件很好地进行通信。
2). Java Message Service(JMS)
JMS支持两种消息发送和接收模型。
一种称为P2P(Ponit to Point)模型,即采用点对点的方式发送消息。P2P模型是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息,队列的存在使得消息的异步传输称为可能,P2P模型在点对点的情况下进行消息传递时采用。
另一种称为Pub/Sub(Publish/Subscribe,即发布-订阅)模型,发布-订阅模型定义了如何向一个内容节点发布和订阅消息,这个内容节点称为topic(主题)。主题可以认为是消息传递的中介,消息发布这将消息发布到某个主题,而消息订阅者则从主题订阅消息。主题使得消息的订阅者与消息的发布者互相保持独立,不需要进行接触即可保证消息的传递,发布-订阅模型在消息的一对多广播时采用。
3). JMS术语
Provider/MessageProvider:生产者
Consumer/MessageConsumer:消费者
PTP:Point To Point,点对点通信消息模型
Pub/Sub:Publish/Subscribe,发布订阅消息模型
Queue:队列,目标类型之一,和PTP结合
Topic:主题,目标类型之一,和Pub/Sub结合
ConnectionFactory:连接工厂,JMS用它创建连接
Connnection:JMS Client到JMS Provider的连接
Destination:消息目的地,由Session创建
Session:会话,由Connection创建,实质上就是发送、接受消息的一个线程,因此生产者、消费者都是Session创建的
4). ActiveMQ下载
bin (windows下面的bat(分32、64位)和unix/linux下面的sh)
conf (activeMQ配置目录,包含最基本的activeMQ配置文件)
data (默认是空的)
docs (index,replease版本里面没有文档,-.-b不知道为啥不带)
example (几个例子)
lib (activemMQ使用到的lib)
webapps 注意ActiveMQ自带Jetty提供Web管控台
webapps-demo 示例
activemq-all-5.15.3.jar
LICENSE.txt
README.txt
5). 配置
Web控制台账号和密码(apache-activemq-5.15.3\conf)
网络端口(apache-activemq-5.15.3\conf)–默认为8161
6). 启动
\apache-activemq-5.15.3\bin\win64\目录下双击activemq.bat文件,在浏览器中输入http://localhost:8161/admin/, 用户名和密码输入admin即可
7). 消息中间件(MOM:Message Orient middleware)
消息中间件有很多的用途和优点:
1 将数据从一个应用程序传送到另一个应用程序,或者从软件的一个模块传送到另外一个模块;
负责建立网络通信的通道,进行数据的可靠传送。
保证数据不重发,不丢失
能够实现跨平台操作,能够为不同操作系统上的软件集成技工数据传送服务
8).什么情况下使用ActiveMQ?
多个项目之间集成
(1) 跨平台
(2) 多语言
(3) 多项目
降低系统间模块的耦合度,解耦
(1) 软件扩展性
系统前后端隔离
(1) 前后端隔离,屏蔽高安全区