JAVA分布式--ActiveMQ 消息中间件(上)

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模型在点对点的情况下进行消息传递时采用。


JAVA分布式--ActiveMQ 消息中间件(上)


另一种称为Pub/Sub(Publish/Subscribe,即发布-订阅)模型,发布-订阅模型定义了如何向一个内容节点发布和订阅消息,这个内容节点称为topic(主题)。主题可以认为是消息传递的中介,消息发布这将消息发布到某个主题,而消息订阅者则从主题订阅消息。主题使得消息的订阅者与消息的发布者互相保持独立,不需要进行接触即可保证消息的传递,发布-订阅模型在消息的一对多广播时采用。


JAVA分布式--ActiveMQ 消息中间件(上)


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下载


JAVA分布式--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)


JAVA分布式--ActiveMQ 消息中间件(上)


网络端口(apache-activemq-5.15.3\conf)–默认为8161


JAVA分布式--ActiveMQ 消息中间件(上)


6). 启动

\apache-activemq-5.15.3\bin\win64\目录下双击activemq.bat文件,在浏览器中输入http://localhost:8161/admin/, 用户名和密码输入admin即可


JAVA分布式--ActiveMQ 消息中间件(上)


7). 消息中间件(MOM:Message Orient middleware)

消息中间件有很多的用途和优点:


1 将数据从一个应用程序传送到另一个应用程序,或者从软件的一个模块传送到另外一个模块;


负责建立网络通信的通道,进行数据的可靠传送。


保证数据不重发,不丢失


能够实现跨平台操作,能够为不同操作系统上的软件集成技工数据传送服务


8).什么情况下使用ActiveMQ?


多个项目之间集成

(1) 跨平台

(2) 多语言

(3) 多项目

降低系统间模块的耦合度,解耦

(1) 软件扩展性

系统前后端隔离

(1) 前后端隔离,屏蔽高安全区


上一篇:阿里云人脸搜索最佳实践


下一篇:深入理解阿里分布式消息中间件