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
  • 相关阅读:
    FastDFS
    目前存在的问题
    MongoDB JAVA开发
    [Linux] Hexo 搭建个人博客
    新目标
    1年之后的拿高工资的资本,Java线程
    Oracle在VMware虚拟机安装的配置
    adb命令关闭打开手机wifi开关
    ADB命令横竖屏切换、关闭打开wifi
    使用adb命令提取安卓手机中安装的apk
  • 原文地址:https://www.cnblogs.com/MagicAsa/p/10794769.html
Copyright © 2011-2022 走看看