zoukankan      html  css  js  c++  java
  • JMS消息传递类型特点介绍

    对于消息的传递有两种类型:

    一种是点对点的,即一个生产者和一个消费者一一对应;

     

    另一种是发布/ 订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进

    行接收。

        

     特点介绍:

    点到点模型
    点对点传递模型:生产者发送消息到一个特定的队列(Queue)中,而消费者从一个消息队列中得到消息,如下图所示:

    点对点模型的特点:

    Ø  每条消息有一个消费者

          每条只有一个消费者,如果一条消息被消息者接收,那么其他的消费者就不能得到这条消息了。

    Ø 发送和接受消息与时间没有关系

          也就是说,生产者在发送消息后,消费者可以在任意的时刻接收,但有两个前提:

                1、消息未过期

                2、消息没有被其他的用户接收

          消费者也可以先运行,当生产者一运行,将消息发送到队列中,消费者即可从队列中获得消息,这叫“守株待兔“。

    Ø  消费者必须确认对消息的接收

          收到消息后消费者必须确认消息已被接收,否则JMS服务提供者会认为该消息没有被接收,那么这条消息仍然可以被其他人接收。程序可以自动进行确认,不需要人工干预。

    Ø  非持久的消息最多只发送一次

          非持久的消息最多只发送一次,表示消息有可能未被发送,造成未被发送的原因可能有:

                1、 JMS服务提供者出现宕机等情况,造成非持久信息的丢失

                2、 队列中的消息过期,未被接收

    Ø  持久的消息严格发送一次

          我们可以将比较重要的消息设置为持久化的消息,持久化后的消息不会因为JMS服务提供者的故障或者其他原因造成消息丢失。

    发布/订阅模型
          发布/订阅模型:发布/订阅传递消息类型与主题(Topic)有关。生产者发布消息,而消费者订阅感兴趣的消息,生产者将消息和一个特定的主题(Topic)连在一起,消息传递系统(MOM)根据消费者注册的兴趣,将消息传递给消费者。这种类型非常类似出版报纸、杂志的形式,如下图所示:

    发布/订阅模型的特点:

    Ø  每个消息都可以有多个(0,1,……)订阅者

          每条消息可以有多个消费者,如果报纸和杂志一样,谁订阅了谁都可以获得。

    Ø  订阅者只能消费他们订阅之后出版的消息

          这就要求订阅者必须先订阅,生产者再发布。即订阅者必须先运行,再等待生产者的运行,这和点对点类型有所差异。

    Ø  订阅者必须保持为活动状态才能使用这些消息

          即订阅者必须保持活动状态等待发布者发布的消息,如果订阅者在发布者发布消息之后才运行,则不能获得先前发布者发布的消息。

  • 相关阅读:
    博客内容分类查重分析平台——大致任务划分(根据进度更改)
    大数据学习——MapReduce配置及java代码实现wordcount算法
    大数据学习——java代码实现对HDFS文件的read、append、write操作
    大数据学习——CentOS6.5在虚拟机下搭建HDFS
    大数据学习——CentOS6.5在虚拟机下实现ssh免秘钥登录
    大数据学习——CentOS6.5在虚拟机下安装mysql
    大数据学习——CentOS6.5在虚拟机下配置jdk
    大数据学习——CentOS6.5在虚拟机下安装配置ip网络
    MVC架构之二
    MVC架构
  • 原文地址:https://www.cnblogs.com/wangju/p/11941649.html
Copyright © 2011-2022 走看看