zoukankan      html  css  js  c++  java
  • JMS

    JMS介绍

      JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS是一种与厂商无关的 API,用来访问收发系统消息,它类似于JDBC(Java Database Connectivity)。这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商都支持 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ。 JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JMS客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带:简单文本(TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息 (Message)。

      示意图

       JMS组成结构

         1.JMS provider : 实现JMS接口和规范的消息中间件,如ActiveMQ,Kafka等

         2.Producer:消息生产者

         3.Consumer:消息消费者

         4. message:消息(最重要)

            消息头: 

               (1):JMSDestination:消息传递的目的地

                             (2):JMSDeliveryMode , 持久模式和非持久模式

                持久性的消息:当消息传递时,MQ宕机了,消息不会丢失,服务器恢复后再次传递

                          非持久化消息:消息最多传递一次,并且服务出现故障后,消息永远丢失

             (3):JMSExpiration:设置消息过期时间,默认永不过期  

             (4):JMSPriority:优先级   

                  消息优先级,从0-9十个级别,0-4普通消息,5-9加急消息,JMS不要求MQ严格按照十个级别发送消息,但是必须保证加急消息要优于普通消息到达,默认时4级

             5):JMSMessageID:唯一识别每个消息的标识(最重要的一个)

     

          消息体:封装消息的具体内容

     

         如:

          发送和接收的消息必须一致 

        消息属性:

          如果需要除消息头字段以外的值,那么可以使用消息识别/去重/重点标注等方法

          如某条消息很重要,需要标识

        如:

          Producer

           Consumer

         结果:

    生命不止,折腾不息
  • 相关阅读:
    二分搜索
    Shell 字符串处理、获取文件名和后缀名
    sqlldr使用说明
    Linux cached过高问题
    算法时间复杂度
    #if,#ifdef,#ifndef的区别
    memcpy momove strcmp源码实现
    怎么解决/bin/sh: arm-linux-gcc: not found make
    性能文章
    linux
  • 原文地址:https://www.cnblogs.com/steakliu/p/11590321.html
Copyright © 2011-2022 走看看