本文主要是介绍JMS与ActiveMQ的基本概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、JMS的了解
JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。
1. JMS的消息模型
1)点对点(P2P) 模型
2)发布/订阅模型
2 .消息发送接收模型图
3.两种模型的区别与特点
点对点模型(Queue):
1)每个消息只有一个消费者,
如果一条消息被消息者接收,消息就不存在于消息队列queue中了,那么其他的消费者接收不到这条消息。
2)发送和接受消息在时间上没有依赖性
也就是说,生产者在发送消息后,消费者可以在任意的时刻接收,只要该消息没有被其他消费者接受或者超时了。消费者也可以先运行,一但生产者将消息发送到队列中,消费者即可从队列中接受消息。
3) 消费者在消息接收之后需要像队列应答确认消息接收成功
接收消息后消费者必须发送应答成功信号(Acknowledges),表示消息已被接收,否则JMS服务器会认为该消息没有被成功接收,那么这条消息还可以被其他消费者接收,直到这个消息被消费掉。
发布订阅模型(Topic)
发布/订阅传递消息类型与主题(Topic)有关。生产者发布消息,而消费者订阅感兴趣的消息,生产者将消息和一个特定的主题(Topic)连在一起.
1 ) 每个消息都可以有多个订阅者
也是就是说每个消息有多个消费者,只要订阅了这个主题(Topic),就可以获得这个消息。
2) 发布者和订阅者之间有时间上的依赖性。
针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态(也就是说在必须先启动消费者那方)。
二、ActiveMQ
ActiveMQ是实现了JMS的开源软件,ActiveMQ是一个易于使用的消息中间件。
安装与使用
1.下载
下载ActiveMQ,下载地址:http://pan.baidu.com/s/1nvltEyP,解压好的文件目录如下
- bin存放的是脚本文件
- conf存放的是基本配置文件
- data存放的是日志文件
- docs存放的是说明文档
- examples存放的是简单的实例
- lib存放的是activemq所需jar包
- webapps用于存放项目的目录
2.启动服务
双击/bin/win64目录下(我的电脑系统是64位的,所以是这个目录,如果是32位系统的目录是/bin/win32)的activemq.bat,启动activemq服务。
3.监控
http://127.0.0.1:8161/admin/
,启动服务后,可以通过这个地址查看activemq活动的状态。用户名和密码都是admin。
可以看到队列“FirstQueue1”中此时有十条消息未被消费。
AciveMQ的好处
看下图应用程序A将Message发送到服务器上,然后应用程序B从服务器中接收A发来的消息。
1)如果网络连接不可用,ActiveMQ会存储消息,直到连接变得可用时,再将消息发送给应用程序B。
2)当应用程序A发送其消息时,应用程序B甚至可以不处于执行状态。直到应用程序B开始执行消费为止,消息会保留。防止了应用程序A因为等待应用程序B消费消息而出现阻塞。
这篇关于JMS与ActiveMQ的基本概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!