• RocketMq2 基本理论


    1、发展历史

    • 阿里巴巴消息中间件起源 于 2001 年的五彩石项目, Notify 在这期间应运而生,用于交易核心消息的流转 。 2010 年, B2B 开始大规模使用 ActiveMQ 作为消息内核,随着阿里业务的快速发展,急需一款支持顺序消息,拥有海量消息堆积能力的消息中间件,MetaQ 1.0 在 2011 年诞生 。
    • 2012 年,MetaQ 已经发展到了 3.0 版本,并抽象出了通用的消息引擎RocketMQ。 随后,对 RocketMQ 进行 了开源 ,阿里的消息中间件正式走人了公众视野 。
    • 2015 年, RocketMQ 已经经历了多年双十一的洗礼,在可用性、可靠性以 及稳定性等方面都有出色的表现。 与此同时 ,云计算大行其道,阿里消息中间 件基于RocketMQ 推出了 Aliware MQ 1.0,开始为阿里云上成 千上万家企业提 供消息服务。
    • 2016 年,MetaQ 在双十一期间承载了万亿级消息的流转,跨越了一个新的里程碑 ,同时 RocketMQ 进入 Apache 孵化 。

    2、消息存储

    Topic 是一个逻辑上的概念,实际上 Message 是在每个 Broker 上以 Queue 的形式记录。
    在这里插入图片描述
    从上面的图片可以总结下几条结论。

    • 1、消费者发送的 Message 会在 Broker 中的 Queue 队列中记录。
    • 2、一个 Topic 的数据可能会存在多个 Broker 中。
    • 3、一个 Broker 存在多个 Queue。

    也就是说每个 Topic 在 Broker 上会划分成几个逻辑队列,每个逻辑队列保存一部分消息数据,但是保存的消息数据实际上不是真正的消息数据,而是指向 commit log 的消息索引。
    在这里插入图片描述

    3、消息发送

    3.1、简化流程

    一个消息从发送,到接收,最简单的步骤:producer,topic,consumer,先由简单到复杂的来理解它的一些核心概念
    在这里插入图片描述
    消息先发到 Topic,然后消费者去 Topic 拿消息。只是 Topic 在这里只是个概念,那它
    到底是怎么存储消息数据的呢,这里就要引入 Broker 概念。

    3.2、细化流程

    在这里插入图片描述
    消息被发送到 queue 中进行标记:
    在这里插入图片描述

    4、消息消费

    4.1、广播消费

    • 一条消息被多个 Consumer 消费,即使这些 Consumer 属于同一个 Consumer Group,消息也会被 ConsumerGroup 中的每个 Consumer 都消费一次,广播消费中的 Consumer Group 概念可以认为在消息划分方面无意义。
      在这里插入图片描述

    4.2、集群消费

    (1)平均分配算法

    这里所谓的平均分配算法,并不是指的严格意义上的完全平均,如上面的例子中,10个queue,而消费者只有 4 个,无法是整除关系,除了整除之外的多出来的 queue,将依次根据消费者的顺序均摊。
    如下图所示:

    在这里插入图片描述
    (2)环形平均算法
    是指根据消费者的顺序,依次在由 queue 队列组成的环形图中逐个分配。具体流程如下所示:
    在这里插入图片描述
    (3)机房临近法
    在这里插入图片描述

  • 相关阅读:
    MySql 数据库【事务】
    Android开发笔记——快速入门(从入门SQLlite到Room放肆)2
    四十九.强化学习基础
    E中国集装箱涂料行业竞争态势及投资盈利预测报告2022-2028年
    C#(Csharp)我的基础教程(四)(我的菜鸟教程笔记)-Windows项目结构分析、UI设计和综合事件应用的探究与学习
    TIPC messaging3
    【华为HCIP | 华为数通工程师】刷题日记1116(一个字惨)
    索引什么时候失效
    【外汇天眼】MT4 vs MT5:哪个更适合外汇初学者
    大数据在电力行业的应用案例100讲(二十八)-电力营销系统规则配置的实现与应用
  • 原文地址:https://blog.csdn.net/Miaoshuowen/article/details/126312328