JMS是J2EE的13个规范之一。
介绍
JMS的全称是Java消息服务应用程序接口,它是一个Java平台中关于面向消息中间件(MOM)的API,用在两个应用程序之间,或在分布式系统中发送消息,进行异步通信。
JMS为Java程序创建,发送,接收和读取企业消息系统中的消息提供了一种通用的方法。
JMS提供与厂商无关的访问方法,用以访问消息收发服务。
消息风格
JMS支持企业消息产品,提供两种主要的消息风格。
1、点对点(P2P):
发送过程:
此风格允许一个客户端通过一个叫“队列”的中间抽象发送一个消息给另一个客户端。
发送消息的客户端将一个消息发送到指定的队列中,接受消息的客户端从这个队列中抽取消息。
特点:
1)、每个消息只有一个消费者
2)、发送者和接受者之间在时间上没有依赖性。也就是说当发送者发送了消息之后,不管接收者有没有正在运行,它都不会影响到消息被发送到队列。
3)、接收者在成功接收消息之后需向队列应答成功。
2、发布订阅:
发送过程:
允许一个客户端通过一个叫“主题”的中间抽象发送一个消息给多个客户端。
发送消息的客户端将一个消息发布到指定的主题中,然后这个消息将被投递到所有订阅了这个主题的客户端。
特点:
1)、每个消息可以有多个消费者
2)、发布者和订阅者之间有时间上的依赖性。
针对某个主题的订阅者,必须创建之后才能消费发布者的消息,而且为了消费消息,该订阅者必须保持运行的状态。
3)、为了缓和这样严格的时间相关性,JMS允许订阅者创建一个可持久化的订阅。(以保证,订阅者没有运行,也可以接收到发布者的消息)
ActiveMQ:
ActiveMQ是一个开源的针对JMS规范的具体实现的消息总线。它是一个易于使用的消息中间件。它完全支持JMS1.1和J2EE1.4规范。
用途:
将数据从一个程序传送到另一个,或者从软件的一个模块传送到另一个模块。
负责建立网络通信的通道,进行数据的可靠传送
优点:
保证数据不重发,不丢失
能够实现跨平台操作,能够为不同的操作系统上的软件集成提供数据传送服务。
MQ:
一个消息的接收和转发的容器,可用于消息推送。
ActiveMQ的启动
1、下载apache-activemq-5.14.5-bin的压缩包,然后运行压缩包中的bin文件夹下的win64文件夹下的activma.bat文件。
默认端口是8161.
2、 然后输入网址http://127.0.0.1:8161,就可以进入mq后端管理界面。
默认的用户名和密码是:admin
如下图:
基本了解了什么是JMS,什么是ActiveMQ,什么是MQ,接下来,咱们就要研究JMS的两种消息风格在ActiveMQ中是如何实现和使用的。敬请期待。