mq概述

作者: 程序男保姆 | 来源:发表于2021-08-26 17:26 被阅读0次
  • mq用途

  1. 限流消峰

加入系统只能承载每秒2000请求,而在一秒内同时来了五千请求则有三千请求无法处理。解决办法加入mq存储请求慢慢消费。

  1. 异步解耦

订单处理

  1. 数据收集

分布式系统产生的海量数据流,如业务日志

ROCKETMQ_HOME=C:\Users\zhiyuan.tian.IMART360\Desktop\mq

image.png
  • 集群的搭建理论

  1. 单master模式

broker集群由多个master构成,不存在slave。同一个topic的各个queue会平均分布在各个master节点上

  • 优点:配置简单,单个master宕机或重新维护对应用无影响,在磁盘配置为raid10时,及时机器宕机不可恢复情况下,由于raid10磁盘非常可靠消息也不会丢失(异步刷盘丢失少量消息,同步刷盘一条不丢),性能最高。
  • 缺点 : 单机机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅(不可消费),消息实时性会受到影响。
  1. 多master多slave模式

broker集群由多个master构成,每个master又配置了多个slave(在配置了raid磁盘阵列的情况下,一个master一般配置一个slave即可)。master与slave的关系是主备关系,即master负责处理消息的读写请求,而slaver仅仅负责消息的备份与master宕机后的角色切换。

最佳实践

一般为master配置raid10磁盘阵列,然后再为其配置一个slave,
即利用了raid10磁盘阵列的高效,安全性,又解决了可能会影响订阅的问题。

  • 消息的生产过程

    • producer可以将消息写入到某个broker中的某个queue中,其经理了如下过程
    1. producer发送消息之前,会现象nameserver发出获取消息topic的路由信息的请求
    2. NS返回该topic的路由表broker列表
    3. producer根据代码中指定的queue选择策略,从queue列表中选出一个队列,用于后续存储发送消息。
    4. producer对消息做一些特殊处理,例如对消息进行压缩
    5. producer想选择除的queue所在的broker发送rpc请求,将消息发送到选择除的queue。

路由表:实际是一个map,key为topic名称,value是queueData实例列表。queueData并不是一个queue对应一个queueData,而是一个broker中该topic的所有queue对应一个queuedata
brokername简单来说,路由表的key为topic名称,value则为所有涉及该topic的brokername列表

  • 消息的存储

  • abort: 改文件在broker启动后自动创建,正常关闭abort,该文件会自动消息,若在没有启动broker的情况下,发现这个文件是存在的,则说明之前broker的关闭是非正常关闭。

  • checkpoint:其中存储这commitlog consuneueue index 文件的最后刷盘时间

  • commitlog : 其中存放着commitlog文件,而消息是卸载commitlog文件中

  • config :存放着broker运行期间的一些配置数据

  • consumequece 其中存放着consumcqueue 队列存放在这个目录中

  • index : 其中存放着消息索引文件indexFile

  • lock: 运行期间使用到的全局资源锁

相关文章

  • 分布式消息队列RocketMQ入门

    一、 RocketMQ概述 1、MQ概述 1)MQ简介 MQ,Message Queue,是一种提供消息队列服务的...

  • MQ概述

    MQ绪论 事件紧急 打电话 同步调用事件不紧急 发短信 发邮件 异步调用 同步 异步调用效果对比 业务场景:电商下...

  • mq概述

    mq用途 限流消峰 加入系统只能承载每秒2000请求,而在一秒内同时来了五千请求则有三千请求无法处理。解决办法加入...

  • 1-Rabbit基础

    1 MQ概述 1.1 MQ的基本概念 MQ(Message Queue) : 翻译为消息队列,通过典型的生产者和...

  • RabbitMQ笔记

    一、MQ的基本概念 1 .1MQ概述 MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消...

  • RabbitMQ原理及相关操作

    MQ使用场景 MQ的使用场景大概包括解耦,提高峰值处理能力,送达和排序保证,缓冲等。 MQ概述 消息队列技术是分布...

  • SpringBoot系列之RabbitMQ使用实用教程

    SpringBoot系列之RabbitMQ使用实用教程@[toc] 1. 消息队列概述 1.1 MQ的概述 消息队...

  • ZeroMQ入门

    概述 ZeroMQ(也称为 ØMQ,0MQ 或 zmq)是一个可嵌入的网络通讯库(对 Socket 进行了封装)。...

  • RabbitMQ全套教程

    1.1 MQ概述MQ全称Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系...

  • 1.MQ入门概述

    1. MQ的产品种类和对比 MQ就是消息中间件。MQ是一种理念,ActiveMQ是MQ的落地产品。不管是哪款消息中...

网友评论

      本文标题:mq概述

      本文链接:https://www.haomeiwen.com/subject/mgiyiltx.html