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

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

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

     

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

    行接收。

        

     特点介绍:

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

    点对点模型的特点:

    Ø  每条消息有一个消费者

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

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

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

                1、消息未过期

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

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

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

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

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

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

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

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

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

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

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

    发布/订阅模型的特点:

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

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

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

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

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

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

  • 相关阅读:
    SGU 176.Flow construction (有上下界的最大流)
    POJ 2391.Ombrophobic Bovines (最大流)
    poj 1087.A Plug for UNIX (最大流)
    poj 1273.PIG (最大流)
    POJ 2112.Optimal Milking (最大流)
    SGU 196.Matrix Multiplication
    SGU 195. New Year Bonus Grant
    关于multicycle path
    ppt做gif动图
    codeforces 598A Tricky Sum
  • 原文地址:https://www.cnblogs.com/wangju/p/11941649.html
Copyright © 2011-2022 走看看