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)机房临近法
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值