zoukankan      html  css  js  c++  java
  • 第十章:(1)Spring Boot 与 消息 之 消息服务

    一、概述

      1、大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力

      2、消息服务中两个重要概念:

        消息代理(message broker) 和 目的地(destination)
        当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。

      3、消息队列主要有两种形式的目的地

        (1)队列(queue) :点对点消息通信(point-to-point)

        (2)主题(topic) :发布(publish) /订阅(subscribe)消息通信

      4、点对点式

        消息发送者发送消息,消息代理将其放入一个队列中,消息接收者从队列中获取消息内容,消息读取后被移出队列
        消息只有唯一的发送者和接受者,但并不是说只能有一个接收者

      5、发布订阅式

        发送者(发布者)发送消息到主题,多个接收者(订阅者)监听(订阅)这个主题,那么就会在消息到达时同时收到消息

      6、JMS(Java Message Service) JAVA消息服务

        基于JVM消息代理的规范。 ActiveMQ、 HornetMQ是JMS实现

      7、AMQP(Advanced Message Queuing Protocol)

        高级消息队列协议,也是一个消息代理的规范,兼容JMS

        RabbitMQ是AMQP的实现

    二、消息服务的优点

      1、异步处理

        

      2、应用解耦

        

      3、流量削峰

        

    三、JMS 和 AMQP 的对比

      

    四、Spring Boot 对消息服务的支持

      1、Spring 支持

      (1)spring-jms 提供了对JMS的支持

      (2)spring-rabbit 提供了对AMQP的支持

      (3)需要 ConnectionFactory 的实现来连接消息代理

      (4)提供JmsTemplate、 RabbitTemplate来发送消息

      (5)@JmsListener(JMS)、 @RabbitListener(AMQP)注解在方法上监听消息代理发布的消息

      (6)@EnableJms、 @EnableRabbit开启支持

      2、SpringBoot 自动配置

        JmsAutoConfiguration

        RabbitAutoConfiguration

  • 相关阅读:
    python 将字符串作为脚本运行
    Django Model获取字段名称并转为List存储
    django 过滤查询
    django 视图中异步执行python脚本
    python 异步执行python脚本
    django 筛选不等于的内容
    phpstorm中快速添加函数注释
    搜索模板elasticsearch
    laravel模型关联
    laravel关联用户
  • 原文地址:https://www.cnblogs.com/niujifei/p/15737466.html
Copyright © 2011-2022 走看看