浅谈Java消息服务(JMS)规范与ActiveMQ实现

浅谈JMS规范与ActiveMQ实现

1.什么是消息中间件?

根据百度百科的介绍:

消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。

看完上面的解释,你可能跟我一样,还是一头雾水╮(╯▽╰)╭。还是一起来学习一下消息中间件有哪些应用吧。

这里推荐一篇非常好的关于消息中间件应用场景的博文:为什么要使用MQ消息中间件?它解决了什么问题?,总结下有以下三个方面:

  • 异步处理消息
  • 应用解耦
  • 流量削峰

2.什么是Java消息服务?

根据百度百科的介绍:

JMS即Java消息服务应用程序接口,是一个Java平台中关于面向**消息中间件的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
JMS是一种与厂商无关的 API,用来访问收发系统消息,它类似于JDBC,JDBC 可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商都支持 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ。 **JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JMS客户机发送消息。**消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带:简单文本(TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息 (Message)。

上面的介绍有点绕口,简单的理解就是,JMS是一组面向消息中间件的技术规范和接口,自身并不提供具体实现。使用JMS API可以很方便的在Java平台上使用不同厂商提供的消息收发服务。

3.Spring集成JMS

翻阅Spring的官方文档,可以发现Spring提供了一个JMS集成框架,该框架简化了JMS API的使用,就像Spring对JDBC API的集成一样。下面列出几个核心的package:

org.springframework.jms.corepa package提供了使用JMS的核心功能。它包含JmsTemplate类,该J类通过处理资源的创建和释放来简化JMS的使用,就像JdbcTemplate类为JDBC所做的工作一样。 Spring模板类共有的设计原则是提供辅助方法来执行常见操作,而对于更复杂的用法,将处理任务的实质委托给用户实现的回调接口。 JMS模板遵循这一设计原则,在模板类中提供了各种方便的方法,用于发送消息同步使用消息以及向用户公开JMS会话(JMS session )和消息生成器(message producer )。

org.springframework.jms.support.converter package提供了一个可以对Java对象和JMS消息进行相互转换MessageConverter抽象类。

org.springframework.jms.annotation package为支持注解驱动的侦听器端点,提供了必要的基础结构。可以使用@JmsListener注解来定义侦听器端点(listener endpoints )。

org.springframework.jms.config package提供了JMS命名空间的解析器实现以及对java配置的支持:配置侦听器容器和创建侦听器端点。

4.ActiveMQ与JMS的联系

ActiveMQ是JMS规范的具体实现,它是Apache下的一个项目,完全采用Java语言开发。

5.ActiveMQ安装

我是在CentOS 7.5的Linux环境下安装软的,安装需要注意的是:由于ActiceMQ完全采用Java语言开发,运行时本地必须先安装好Java环境。ActiveMQ本身的安装时十分简单的,分成3步:

  1. 在ActiveMQ官网下载ActiveMQ 5 "Classic"版本,选择Linxu版,同样也有windows版本。

    ActiveMQ官网下载

  2. 执行tar -zxvf命令解压后,进入apache-activemq-5.15.11目录 。

  3. 执行./bin/activemq start启动ActiveMQ

    启动ActiveMQ

安装完成后,打开浏览器输入服务器地址:8161,就可以进入到ActiveMQ的管理后台,初始的登录的用户名和密码都是admin,见到下图就是安装成功啦。

ActiveMQ消息管理后台

ActiveMQ有两个端口号,一个是61616,这是应用端口号,供程序连接,另外一个8161端口号对应消息管理后台。

原文地址:https://www.cnblogs.com/blog567/p/12374655.html