1、异步消息

    1.1、目的:

          为了  系统与系统  之间的通信;

    1.2、概念:

        异步消息  :消息的   发送者  无需 等待消息  接收者的处理及返回,甚至 无需 关心消息是否发送成功;

    1.3、异步消息中的2个概念

        1.3.1、消息代理、目的地

              当消息发送者  发送消息后,消息  将由 消息代理 接管,消息代理  保证 消息传递到  指定的目的地;

        1.3.2、异步消息的2种  目的地形式:

              a,队列(Queue)

                作用:  用于  点对点  的消息通信;

              b,主题(Topic)

                作用:  用于  发布/订阅  的消息通信;

        1.3.3、点对点

              a,概述

                当   消息发送者   发送消息后,消息代理    获得消息  并将   消息  放进一个  队列中;

                当   消息接收者    接收消息时,消息  将被  从消息队列中  取出  传递给  接收者,这时队列中没有这条消息;

              b,特点

                点对点  确保 每条消息  只有  唯一   的发送者、接收者(不是  只有确定的 唯一接收者  可以接收消息);

        1.3.4、发布/订阅

              a,概述

                消息发送者 (发布者)  将消息   发送到  主题;

                多个消息接收者  (订阅者) 监听  这个主题;

2、消息代理

    2.1、JMS(Java Message Service(java消息服务)),基于 JVM消息代理  的规范;

    2.2、ActiveMQ、HornetQ   是  JMS消息代理的  实现;

    2.3、AMQP(Advanced Message Queuing Protocol)  也是 一个消息代理 规范;

          不仅 兼容  JMS、还支持  跨平台、跨语言;

          AMQP  的实现:RabbitMQ;

3、Spring的支持

    3.1、Spring  对 JMS 、AMQP 的支持  分别 来自  spring-jms、spring-rabbit;

    3.2、spring-jms、spring-rabbit  分别 需要 ConnectionFactory  的实现   来   连接消息代理,并 分别  提供了   JmsTemplate、RabbitTemplate  发送消息;

    3.3、Spring  为 JMS、AMQP 提供了  @JmsListener、@RabbitListener   在方法上   监听 消息代理   发布的消息;

    3.4、需要  通过  @EnableJms、@EnableRabbit  开启  Spring  对 JMS、AMQP  的支持;

Spring---异步消息的更多相关文章

  1. 【Redis】redis异步消息队列+Spring自定义注解+AOP方式实现系统日志持久化

    说明: SSM项目中的每一个请求都需要进行日志记录操作.一般操作做的思路是:使用springAOP思想,对指定的方法进行拦截.拼装日志信息实体,然后持久化到数据库中.可是仔细想一下会发现:每次的客户端 ...

  2. 1.异步消息Jms及其JmsTemplate的源代码分析,消息代理ActiveMQ

    一. 介绍 借助Spring,有多种异步消息的可选方案,本章使用Jms.Jms的消息模型有两种,点对点消息模型(队列实现)和发布-订阅消息模型(主题). 图1.点对点消息模型(一对一) 图2.发布-订 ...

  3. 八.利用springAMQP实现异步消息队列的日志管理

    经过前段时间的学习和铺垫,已经对spring amqp有了大概的了解.俗话说学以致用,今天就利用springAMQP来完成一个日志管理模块.大概的需求是这样的:系统中有很多地方需要记录操作日志,比如登 ...

  4. (十七)SpringBoot之使用异步消息服务jms之ActiveMQ

    一.引入maven依赖 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...

  5. #研发中间件介绍#异步消息可靠推送Notify

    郑昀 基于朱传志的设计文档 最后更新于2014/11/11 关键词:异步消息.订阅者集群.可伸缩.Push模式.Pull模式 本文档适用人员:研发   电商系统为什么需要 NotifyServer? ...

  6. Java异步消息平台

    l  JAVA平台异步消息模块 JAVA平台异步消息模块,是一个针对RabbitMQ的消息发送及处理封装,包含消息的配置.发送.接收.失败重试.日志记录等,总共分为4个部分: 1)RabbitMQ访问 ...

  7. C#实现异步消息队列

    原文:C#实现异步消息队列 拿到新书<.net框架设计>,到手之后迅速读了好多,虽然这本书不像很多教程一样从头到尾系统的讲明一些知识,但是从项目实战角度告诉我们如何使用我们的知识,从这本书 ...

  8. Android 异步消息处理机制前篇(二):深入理解Message消息池

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 上一篇中共同探讨了ThreadLocal,这篇我们一起看下常提到的Message消息池到底是怎么回事,废话少说吧,进入正题. 对于稍有经验的开发人员 ...

  9. Android异步消息机制

    Android中的异步消息机制分为四个部分:Message.Handler.MessageQueue和Looper. 其中,Message是线程之间传递的消息,其what.arg1.arg2字段可以携 ...

  10. 三.RabbitMQ之异步消息队列(Work Queue)

    上一篇文章简要介绍了RabbitMQ的基本知识点,并且写了一个简单的发送和接收消息的demo.这一篇文章继续介绍关于Work Queue(工作队列)方面的知识点,用于实现多个工作进程的分发式任务. 一 ...

随机推荐

  1. mui初级入门教程(七)— 基于native.js的文件系统管理功能实现

    文章来源:小青年原创发布时间:2016-08-01关键词:mui,nativejs,android转载需标注本文原始地址: http://zhaomenghuan.github.io... 前言 这段 ...

  2. Day02 结构类型

    1.结构类型是值类型  (类是引用类型) 2.结构中也可以像类一样,定义 字段  属性  方法  但是不能给字段赋初始值 3.结构的构造方法中,必须为所有的字段赋值 4.不能为结构显示定义无参数的构造 ...

  3. slider组件

    slider组件,是一个强大的滑动选择器组件: 属性: min:类型 数字 滑动选择器的(范围)最小值 max:类型 数字 滑动选择器的(范围)最大值 step:类型 数字 步长(滑一次走的距离)  ...

  4. 【洛谷P1069 细胞分裂】

    题目链接 首先,光看题就觉得它很扯淡(你哪里来这么多的钱来买试管) 根据某位已经ak过ioi的名为ych的神仙说(一看就是数学题,一看就需要因式分解,emm,我果然没有发现美的眼睛qwq) 那么我们就 ...

  5. 用Vue来实现音乐播放器(十五):处理得到的歌手数据

    之前得到的歌手数据是用forEach遍历添加的  没有顺序性  我们希望得到的数据是title:"热门"的数据在最上面  title为字母的数据按字母从低到高顺序排列 var ho ...

  6. linux文本图形界面转换

    vim /etc/inittab 3为默认进入文本界面, 5为默认进入图形界面 文本界面下输入init5或者startx切换图形化界面  图形化界面下输入init3切换文本界面

  7. 006-spring-data-elasticsearch 3.0.0.0使用【四】-spring-data之Elasticsearch Repositories

    续 二.Elasticsearch Repositories 2.1.简介 2.1.1.Spring命名空间 Spring Data Elasticsearch模块包含一个允许定义存储库bean的自定 ...

  8. 003-CHROME开发者工具的小技巧

    首先调试先进入到调试模式,快键键F12 1.代码格式化 有很多css/js的代码都会被 minify 掉,你可以点击代码窗口左下角的那个 { }  标签,chrome会帮你给格式化掉. 2.强制DOM ...

  9. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_01 Collection集合_4_Iterator接口介绍

    collection集合中是没有索引的,不能使用普通的循环来便利它. 也是在util的包中 先判断集合中有没有元素 有元素就取出来,用next方法 使用接口来接受一个实现类,这就是多态

  10. list数据的存储

    1 存储成csv格式 简单方法: a = [3,3,4,4] df = {'a': a} df = pd.DataFrame(df) df.to_csv('./a.csv') 复杂方法: import ...