• 3.消息队列全面总结——ActiveMq,RabbitMQ,RocketMq,Kafa


    学习思维导图

    在这里插入图片描述

    消息队列的可用和高可用

    消息队列的可用性通过如下三方面保证:

    • 事务
    • 持久化
    • 消息接收应答ACK

    JMS保证可用

    高并发下的高可用保证:

    • 在可用性的基础上扩展

    Broker(了解即可)

    Broker其实就是以代码的形式启动Mq。正常时手动方式启动指定的服务器上的实例。
    而broker启动的Mq是应用程序在自己服务器上启动的指定的Mq.

    Spring整合消息队列

    Spring整合ActiveMq

    不同消息队列实现上的区分

    • ActiveMq支持两种消息生产和消费模式,
      • 一种式队列式(一个生产者,多个消费者进行独占消费),
      • 一种式订阅发布式(一个生产者,多个消费者共享)
    • RabbitMq是在ActiveMq的两种模式基础上进行扩展了,
      • 对队列模式基本不变,客户端生成消息队列,然后进行保证,也可以不声明消息队列,绑定已存在的队列
      • 而对于订阅发布模型进行了改进,每个订阅者保证有一个专属的队列,此外每个订阅者的队列通过路由进行唯一标识,也就是队列名称,还设置了交换机进行统一管理,用来接收数据,完成订阅分发 这样做的好处就是可以把一个含有多个子的大业务交个一个交换机,交换机负责处理多个子业务的消息分发。每个消费者业务可以维护自己独立的消费队列
      • 1: 一般建议是在rabbitmq操作面板创建。这是一种稳妥的做法。
      • 2:按照常理来说,确实应该消费者这边创建是最好,消息的消费是在这边。这样你承受一个后果,可能我生产在生产消息可能会丢失消息。
      • 3:在生产者创建队列也是可以,这样稳妥的方法,消息是不会出现丢失。
      • 4:如果你生产者和消费都创建的队列,谁先启动谁先创建,后面启动就覆盖前面的
    • RokcetMq
      • 和activemq的生产消费模式是一样的
      • 有一个NameSever的概念,作为注册中心进行独立的集群配置中心
      • 本身安装就需要配置集群模式,适合高可用,高并发场景
    • KafKa
      • 和activeMq的生产消费 模式是一样的
      • 在数据存储的持久化方面进行了优化
  • 相关阅读:
    如何进行列间排序
    spring boot 自定redis缓存注解
    Python 任务系统6 按演进的思路来看:从零散的任务到集中管理
    十七年运维老兵万字长文讲透优维低代码~
    c++编写简易版2048小游戏
    Redis缓存击穿、雪崩、穿透
    践行这两个方法,跳出一切情绪的制约
    python实现基于决策树的AdaBoost集成学习器
    【 Python高级编程】 Canny边缘检测算法阈值设置
    DVWA - 4
  • 原文地址:https://blog.csdn.net/qq_37771209/article/details/126563875