zoukankan      html  css  js  c++  java
  • 消息服务中间件知识

    场景:

    1.异步处理

      注册信息写入数据库——写入消息队列后直接返回 注册成功

      邮件和短信再发送

      节省了用户收到注册成功提示的时间。
    2.应用解耦

      两种 系统单独抽取出来

      只要消息队列中有内容,库存系统就收到消息进行计算。

    3.流量削峰

      秒杀时, 设置消息队列最大上限人数

      一旦达到上限关闭,直接返回秒杀失败,节省等待时间。

    知识点:


    消息代理:消息中间件的服务器

    • 目的地:队列(queue):点对点消息通信(point-to-point)
    • 主题(topic):发布(publish)/订阅(subscribe)消息通信

    两种模式:

    1.点对点:

       A——消息队列(queue)——B/C/D  
       发送者唯一,B,C,D需主动取
       消息一旦被B取出后 消息删除 ,C,D无法取
    2.发布订阅:
       A——消息主题(topic)——B/C/D
       B,C,D监听
       A的消息到达topic时。
       B,C,D同时收到消息


    消息代理规范:
    JMS(Java Message Service)JAVA消息服务:
    ActiveMQ、HornetMQ是JMS实现

    AMQP (Advanced Message Queuing Protocol)高级消息队列协议 可以兼容JMS
    RabbitMQ是AMQP的实现

    Spring支持:

    • spring-jms提供了对JMS的支持
    • spring-rabbit提供了对AMQP的支持
    • 需要ConnectionFactory的实现来连接消息代理
    • 提供JmsTemplate、RabbitTemplate来发送消息
    • @JmsListener(JMS)、@RabbitListener(AMQP)注解在方法上监听消息代理发布的消息
    • @EnableJms、@EnableRabbit开启支持

    Spring Boot自动配置:

    • JmsAutoConfiguration
    • RabbitAutoConfiguration
  • 相关阅读:
    第63天python学习异常
    第62天python 学习TCP三次握手四次挥手详解
    文件操作
    内置函数
    函数递归
    函数补充
    函数
    购物车程序作业
    集合内置函数
    字典三级菜单
  • 原文地址:https://www.cnblogs.com/MagicAsa/p/10794769.html
Copyright © 2011-2022 走看看