JMS

一、JMS

即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

  • JMS元素

JMS提供者 ---- 连接面向消息中间件的,JMS接口的一个实现。
JMS客户 ------- 生产或消费消息的基于Java的应用程序或对象。
JMS生产者 ---- 创建并发送消息的JMS客户。
JMS消费者 ---- 接收消息的JMS客户。
JMS消息 ------- 可以在JMS客户之间传递的数据的对象
JMS队列 ------- 一个容纳那些被发送的等待阅读的消息的区域。
JMS主题 ------- 一种支持发送消息给多个订阅者的机制。

  • JMS应用程序接口

ConnectionFactory(连接工厂)--------- 用户用来创建到JMS提供者的连接的被管对象。
Connection(连接)------------------------- 连接代表了应用程序和消息服务器之间的通信链路。
Destination(目标)------------------------- 消息发布和接收的地点,或者是队列,或者是主题。
MessageProducer(消息生产者)------ 由会话创建的对象,用于发送消息到目标。
MessageConsumer(消息消费者)----- 由会话创建的对象,用于接收发送到目标的消息。
Message(消息)---------------------------- 是在消费者和生产者之间传送的对象。
Session(会话)------------------------------ 表示一个单线程的上下文,用于发送和接收消息。

  • JMS消息模型

(1)点对点或队列模型(Point-to-Point)

JMS 点对点队列模型特点:
1)消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。
2)消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。
3)Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。

(2)发布/订阅(Publish/Subscribe)


JMS 发布/订阅模型特点:
1)消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。
2)发布到topic的消息会被所有订阅者消费。


二、消息中间件

消息中间件是在分布式系统中完成消息的发送和接收的基础软件。

消息中间件可利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以在分布式环境下扩展进程间的通信。通过消息中间件,应用程序或组件之间可以进行可靠的异步通讯,从而降低系统之间的耦合度,提高系统的可扩展性和可用性。 

消息队列(Message Queue):在消息的传输过程中保存消息的容器,充当消息源和目标之间的中间桥梁。队列的主要目的就在于提供路由保证消息的传递,是一种生产者-消费者模式。

消息中间件更强调的是分布式通讯,侧重通讯过程;MQ则是一种实现方式,侧重技术,也是一种消息中间件。

JMS是一个提供消息服务的技术规范,而MQ则是面向消息中间件的最终实现,是真正的服务提供者;MQ的实现可以基于JMS,也可以基于其他规范或标准。MQ是遵循了某种协议的具体实现和产品。ActiveMQ就是基于JMS实现的消息队列。

三、ActiveMQ

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值