zoukankan      html  css  js  c++  java
  • ActiveMQ(02):JMS基本概念和模型

    一丶JMS基本概念(1)

    概念

    JMS Java Message Service,Java消息服务,是Java EE中的一个技术

    JMS规范

    JMS 定义了Java中访问消息中间件的接口,并没有给予实现,实现JMS接口的消息中间件叫JMS Provider,例如ActiveMQ

    JMS Provider

    实现JMS接口和规范的的消息中间件

    JMS Message

    JMS消息,由以下三部分组成:

    1.消息头:每个消息头字段都有相应的的getter和setter方法

    2.消息属性:如果需要消除消息头字段以外的值,可以使用消息属性

    3.消息体:封装具体的消息数据

    JMS Producer

    消息生产者,创建和发送JMS消息的客户端应用

    JMS Costumer

    消息消费者,接受和处理JMS消息的客户端应用

        消息者可以使用以下两种消费方式之一:

           1:同步消费:通过调用消费者的recive的方法从目的地中显式提取消息,recive方法可以一直阻塞到消息的送达

      2:异步消费:客户可以作为消费者注册一个消息监听器,以定义消息到达时所采取的操作。

    二丶JMS基本概念(2)

    JMS Domains

    消息传递域,JMS中规定了两种消息传递域,点对点(point-to-point,简写PTP),和发布/订阅传递域(publish/subscribe,简写成pub/sub)

        1.点对点消息传递域的特点

       (1)每个消息只能有一个消费者

            (2)消息的生产者和消费者之间没有时间上的相关性,无论消费者在生产者发布消息的的时候是否处于运行状态,他都可以提取消息。

               

        2.发布/订阅传递域的特点

            (1)每个消息可以有多个消费者

            (2)生产者和消费者之间有时间上的相关性,订阅一个主题的消费者(topic),只能消费自它订阅之后发布的消息,JMS规范允许客户创建持久订阅

             这在一定程度上放宽了时间上的相关性要求,持久订阅允许消费者消费他处于未激活状态是发送的消息。

        3.在点对点消息传递域中,目的地被称为队列(queue),在发布/订阅消息传递域中,目的地被称为主题(topic)+

             

    三丶JMS消息结构(1)

    JMS消息由以下几部分组成

    消息头,属性,消息体

       1.消息头包含消息的识别信息和路由信息,有以下一些标准属性

             1:JMSDestination:消息发送的目的地,主要是指queen或topic。自动分配。

             2:JMSDeliveryMode:传送模式,两种 持久模式非持久模式(持久模式:JMS提供者出现故障,再次连接会再次传递,非持久模式相反)

           

         

    四丶JMS消息结构(2)

    JMS API 定义了5种消息格式,也叫消息类型

       TextMessage,MapMessage,BytesMessage,StreamMessage和ObjectMessage

    JMS 消息属性

       (1)应用程序设置和添加的属性:

              比如 message.setStringProperty(“‘username’,username)

       (2)JMS定义的属性

              使用JMSX作为属性名的前缀,

        connection.getMetaData().getJMSXPropertyNames()方法返回所有支持的JMS的属性名字。

  • 相关阅读:
    Pytest学习之 autouse=True,自动调用fixture功能
    Pytest学习之xfail使用
    Pytest学习之use fixtures
    python
    python
    python
    python
    python
    python
    python
  • 原文地址:https://www.cnblogs.com/quangeshishen/p/10193850.html
Copyright © 2011-2022 走看看