JMS规范要点

来源:互联网 发布:淘宝买守望先锋亚服 编辑:程序博客网 时间:2024/05/22 06:38

 一、概要

        JMS(JAVA Message Service 即java消息服务) jms的客户端之间可以通过JMS服务进行异步的消息传输

二、消息模型

     #p2p(点对点):
        1、元素:消息队列、发送者、接收者、每个消息被发送到一个特定的队列,接收者从队列获取消息,队列保留这消息知直到被消费或者超时
        2、特点:每个消息只有一个消费者、发送者和接收者没有时间依赖(同步)、接收者接收成功需要向队列应答成功
     #pub/sub(发布订阅模式)
        1、元素:主题(Topic)、发布者(Publisher)、订阅者
        2、特点:每个消息可以有多个消费者、发布者和订阅者之间有时间上的依赖性。针对某个主题的订阅者,它必须在创建订阅者之后才能消费发布消息

三、消息的消费

     #JMS中消息的生产和消费是异步的。对于消费者来说,JMS消费者可以通过两种方式来消费消息
        1、同步:订阅者或接收者调用receive方法来接收消息,receive在能够接收消息前一直阻塞
        2、异步:订阅者或接收者可以注册为一个消息监听器。当消息到达之后,系统自动调用监听器的onMessage方法

四、JMS编程模型

     #ConnectionFactory
        创建Connection对象的工厂,针对两种不同的消息模型,分别有QueueConnectionFactory和TopicConnectionFactory
     #Connection
        表示客户端和JMS系统之间建立连接。Connection可以产生一个或者多个Session
     #Session 会话-是接收或者发送消息的线程
        Session是操作消息的接口,用于创建消息源(Destination)或者生产者、消费者
     #Destination
         消息源:即点对点的某个队列或者发布订阅的某个主题(topic)
     #MessageProducer
         消息生产者由session创建,并将消息发送到消息源(Destination),调用send方法发送消息
     #MessageSonsumer
         消息消费者由session创建,接收消息源(Destination)的消息,调用receive方法得到消息对象
     #MesssgeListener
         消息监听器:如果注册了消息监听器,一旦消息到达,将自动调用监听器的onMessgae方法

五、总结

      JMS规范是许多消息中间件比如ActiveMQ、MetaQ、kestrel等的基层实现的模型,kafka这样的分布式服务框架也是基于JMS规范,他们的共同特点就是提供点对点或者发布订阅这样的异步调用服务。
0 0
原创粉丝点击