zoukankan      html  css  js  c++  java
  • JMS介绍

    JMS简单描述:

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

    JMS的优势:

    异步:JMS天生就是异步的,客户端获取消息的时候,不需要主动发送请求,消息会自动发送给可用的客户端。

    可靠:JMS保证消息只会传递一次。

    JMS消息传递模型有2种:

    1.点对点消息传递模型(P2P):

    P2P消息传递模型

         

    在点对点消息传递模型中,应用程序由消息队列、发送者、接收者组成。每一个消息发送给一个指定的消息队列,该队列保存了所有发送给它的消息(被接收者消费掉和已过期的消息除外)。

    点对点消息传递模型特性如下:

    每个消息只有一个接收者;

    消息发送者和接收者并没有时间依赖性;

    当接收者收到消息时,会发送确认收到通知(acknowledgement)

    2.发布/订阅消息传递模型(pub/sub):

    发布/订阅消息传递模型

    在发布/订阅消息传递模型中,发布者发布一个消息,该消息通过topic传递给所有订阅者客户端。

    发布/订阅消息传递模型特性如下:

    一个消息可以传递给多个客户端;

    发布者和订阅者有时间依赖性,只有当客户端创建订阅后才能接收消息。为了缓和这种严格的时间依赖性,JMS允许客户端创建一个可持久化的订阅(durableSubscriber),这样,客户端创建订阅后还能接收到创建订阅前发布者已经发布的消息。

    在JMS中,消息的接收可以使用同步和异步两种方式:

    同步:消息订阅者可以调用receive()方法,从而以同步的方式接收消息,receive()方法在消息到达之前会一直阻塞,直到指定的时间。

    异步:使用异步方式接收消息的话,消息订阅者需要注册一个消息监听器(实现MessageListener接口),只要消息到达,JSM服务提供者就会通过调用监听器的onMessage()方法来递送消息

    JMS编程接口:

    JMS编程接口

    1.javax.jms.ConnectionFactory接口,用来产生Connection连接对象

    2.javax.jms.Connection接口,用来产生Session会话对象。Connection接口有2个子接口:QueueConnection和TopicConnection。

    3.javax.jms.Session接口,用来创建Destination目的地对象和MessageProducer生产者对象或者MessageConsumer消费者对象。Session接口也有2个子接口:QueueSession和TopicSession。

    MessageProducer接口有2个子接口:QueueSender和TopicPublisher,MessageConsumer接口也有2个子接口:QueueReceiver和TopicSubscriber。以上两个子接口分别对应P2P消息传递模型和Pub/Sub消息传递模型。

  • 相关阅读:
    图书管理系统(view)前后端调联 (copy)
    图书管理系统(modelviewset)前后端调联
    工单系统表的设计
    初始化工单项目及配置
    重要概念 什么是web容器 Linux下安装部署njinx+uwsgi+django+vue
    ubuntu下安装docker django使用whoosh搜索引擎 使用es(elasticsearch)代替whoosh
    RBAC权限管理基本概念与实现
    Django支付宝(沙箱)后端接口
    使用七牛云上传 并将本地图片视屏上传
    展示课程
  • 原文地址:https://www.cnblogs.com/koushr/p/5954675.html
Copyright © 2011-2022 走看看