一、JMS概述

   JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS是一种与厂商无关的 API,用来访问收发系统消息,它类似于 JDBC(Java Database Connectivity)。这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务

二、JMS相关概念

  1. 提供者:实现JMS规范的消息中间件服务器。
  2. 客户端:发送或者接收消息的应用程序。
  3. 生产者/发布者:创建并发送消息的客户端。
  4. 消费者/订阅者:接收并处理消息的客户端。
  5. 消息:应用程序之间传递的数据内容。
  6. 消息模式:在客户端之间传递消息的方式,JMS中定义了主题和队列两种模式。

三、消息模式

  1. 客户端包括生产者和消费者
  2. 队列中的消息只能被一个消费者消费
  3. 消费者可以随时消费队列中的消息
    初识JMS 与 activeMq

四、主题模式

  1. 客户端包括发布者和订阅者
  2. 主题中的消息被所有消费者使用
  3. 消费者不能消费订阅之前就发送到主题中的消息
    初识JMS 与 activeMq

五、JMS的编码接口

  1. ConnectionFactory 用于创建连接到消息中间件的连接工厂
  2. Connetion 代表了应用程序和消息服务器之间的通信链路
  3. Destination 指消息发布和接收的地点,包括队列或者主题
  4. Session 表示一个单线程的上下文,用于发送和接收消息
  5. MessageConsumer 由会话创建,用于接收发送到目标的消息
  6. MessageProducer 由会话创建,用于发送消息到目标
  7. Message 是在消费者和生产者之间传送的对象,消息头,一组消息属性,一个消息体

六、JMS编码接口之间的关系

初识JMS 与 activeMq

七、安装ActiveMQ

  1. 下载官方网站:http://activemq.apache.org/

  2. 运行ActiveMQ服务:
    下载,解压缩
    大家现在好之后,将apache-activemq-5.11.1-bin.zip解压缩,我们可以看到它的整体目录结构:
    初识JMS 与 activeMq从它的目录来说,还是很简单的:

    bin存放的是脚本文件
    conf存放的是基本配置文件
    data存放的是日志文件
    docs存放的是说明文档
    examples存放的是简单的实例
    lib存放的是activemq所需jar包
    webapps用于存放项目的目录

  3. 启动ActiveMQ :
    我们了解activemq的基本目录,下面我们运行一下activemq服务,双击bin目录下的activemq.bat脚本文件或运行自己电脑版本下的activemq.bat,就可以看下图的效果。
    初识JMS 与 activeMq从上图我们可以看到activemq的存放地址,以及浏览器要访问的地址.

  4. 测试
    ActiveMQ默认使用的TCP连接端口是61616, 通过查看该端口的信息可以测试ActiveMQ是否成功启动 netstat -an|find “61616”

  5. 监控
    ActiveMQ默认启动时,启动了内置的jetty服务器,提供一个用于监控ActiveMQ的admin应用。
    admin:http://127.0.0.1:8161/admin/

用户名和密码都是admin
初识JMS 与 activeMq至此,服务端启动完毕

停止服务器,只需要按着Ctrl+Shift+C,之后输入y即可。

八、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的系统里面去,而且也支持Spring2.0的特性
  4. 通过了常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
  5. 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
  6. 支持通过JDBC和journal提供高速的消息持久化
  7. 从设计上保证了高性能的集群,客户端-服务器,点对点
  8. 支持Ajax
  9. 支持与Axis的整合
  10. 可以很容易得调用内嵌JMS provider,进行测试

九 什么情况下使用ActiveMQ?

  1. 多个项目之间集成
    (1) 跨平台
    (2) 多语言
    (3) 多项目
  2. 降低系统间模块的耦合度,解耦
    (1) 软件扩展性
  3. 系统前后端隔离
    (1) 前后端隔离,屏蔽高安全区

相关文章: