• JMS总结


    一 什么是JMS

        1.JMS,Java Message Service,Java消息服务是一种可以实现异步通讯的消息中间件MOM(Message Oriented Middleware,面向消息的中间件)。

        2. JMS实质上是一系列的接口规范,任何实现了JMS标准的MOM都可以作为消息的中介,完成消息的存储转发。

        3.另外,Apache出品的ActiveMQ 是开源的JMS中的一种。

    二 为什么要用JMS

          举个简单的例子。如果朋友打电话过来,你手机关机了,那你就接不到。但是他可以发短信,这样你开机时,就可以接到信息。这就是异步通讯,而JMS的作用就如同短信。

    图I JMS通讯示意图

    三 JMS的作用

      1.提供消息灵活性

          应用程序A与应用程序B通过使用JMS的API发送消息进行通信。应用程序A将消息发给JMS,如果此时网络不可用,JMS会存储消息,直到连接变得可用时,再将消息转发给应用程序B。同时这还防止了应用程序A因为等待应用程序B检索消息而出现阻塞。 

      2.松散耦合

          应用程序A和应用程序B是彼此无关的,可以替换掉A或B。

    四 JMS的两种消息模型

        JMS有两种模型:点到点(P2P)和发布/订阅(Pub/Sub)。

    0_1291299982n4M4.gif (551×318)
         图II JMS的两种模型

        1.点到点模型

          如图II,ClientA/ClientC、ClientA/ClientD就属于点到点的方式。

          其特点是:

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

            ②生产者在发送消息后,只要消息未过期,消费者可以在任意的时刻接收。

            ③消费者必须确认对消息的接收。否则JMS服务提供者会认为该消息没有被接收,那么这条消息仍然可以被其他人接收。

            ④非持久的消息最多只发送一次。即出现JMS服务提供者因宕机等原因造成非持久信息的丢失,或者队列中的消息过期未被接收的情况。

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

        2.发布/订阅模型

          如图II,ClientBh和ClientE、ClientF之间就属于发布/订阅方式。

          其特点是:

            ① 每个消息都可以有多个订阅者。

            ②订阅者只能消费他们订阅之后出版的消息。这要求订阅者必须先运行并保持为活动状态,再等待发布者的运行。

    ActiveMQ是基于JMS的实现,可以参考https://blog.csdn.net/fun913510024/article/details/45284379

  • 相关阅读:
    Redis企业级数据备份与恢复方案
    使用canal增量同步mysql数据库信息到ElasticSearch
    SpringBoot基于数据库实现简单的分布式锁
    SpringBoot+ShardingSphere实现分库分表 + 读写分离
    SpringBoot 使用JestClient操作Elasticsearch
    Java 操作 MongoDB
    VS C#开发中WinForm中Setting.settings的作用
    Sql 触发器禁用和启用
    ROW_NUMBER over (order by **)
    Aspen 安装
  • 原文地址:https://www.cnblogs.com/tigerhsu/p/4978818.html
Copyright © 2020-2023  润新知