一、JMS规范
1.基本概念
JMS是java消息服务,JMS的客户端(或者分布式应用)之间可以通过JMS服务进行异步的消息传输
JMS规范的目的是为了使java程序能够访问现有不同的MOM系统。解决不同消息中间件之间的协作问题
2.消息模型
(1)P2P
- Point-toPoint(P2P)每个消息只有一个消费者,一旦消息被消费,消息就不在消息队列中了
- 发送者和接收者,在时间上没有依赖关系,也就是说当发送者发了消息之后,不管接受者有没有正在运行,不会影响消息被发送到消息队列中
- 就收者在成功接收消息之后需要向队列应答成功
-
应用场景:希望每个消息被成功处理,就需要P2P模式
P2P模式
(2)Pub/Sub
Pub/Sub模型- 每个消息可以有多个接收者
- 发布者和订阅者之间在时间上有依赖性,针对某个主题(Toptic)的订阅者,必须创建一个订阅之后,才能接受消息,而且为了消费消息,订阅者必须保持在运行状态
- JMS运行订阅持久消息,这样即使订阅者没有运行,也能接受发布者过的消息。
3.MOM
MOM是面向消息的中间件,使用‘消息传送提供者’来协调消息传送操作。MOM需要提供API和管理工具。客户端使用api调用,把消息发送到由提供者管理的目的地。在发送消息之后,客户端会进行其他工作。并且在接受方收到这个消息确认之前,提供者一直保留该消息。
ActiveMQ就是一个面向消息的中间件(MOM)
MOM
MOM特点
- 消息是异步的,发送者不需要等待消息接受者响应
- 消息可靠接受,确保消息在中间件中可靠保存,只有接受方收到消息后才会删除消息
二、ActiveMQ介绍
1.是JMS规范的实现者,类似JDBC和MYSQL的关系
2.ActiveMQ的特点
- 多语言和多协议编写客户端
语言:JAVA/C/C++/C#/Ruby/Perl/PYthon/PHP
协议:openwire/stomp/REST/ws/notifacation/XMPP/AMQP - 完全支持jms1.1和J2ee1.4规范
- 对spring的支持,ActiveMQ可以很容易的内嵌到spring模块中
网友评论