当前位置: 首页 > 网络应用技术

RocketMQ源代码分析5:经纪人消息分配过程

时间:2023-03-06 22:58:59 网络应用技术

  基于RocketMQ-4.9.0的RocketMQ-4.9.0分析

  在RocketMQ中,该消息的消息如下,每个消息将具有相应的索引信息。消费者通过第二级用途索引读取消息的物理内容。该过程如下:下面:

  写出消息后,RocketMQ将分配物理偏移(用于放置消息)以通过异步线中和。

  用途:消息消耗队列,引言的目的是提高消息消耗的性能。因为RocketMQ基于主题主题订阅模式。新闻消费是为主题。EssenceConsumer可以根据用途的方式找到要消费的消息。它们作为消费者消息的索引,填充(逻辑消费者队列)作为消费者的索引,它保留了在commitlog中的最初物理偏移量,该索引的最初物理偏移偏移量。COMMITLOG,消息大小和消息标签的哈希码值。

  indexfile:indexfile(索引文件)提供了一种可以通过键或时间间隔查询消息的方法

  让我们简要查看与经纪人启动过程中的消息分布相关的过程:

  我们继续看到的内部实施:

  // todo:标记消息分布的起始位置是分布此。从cillsLog中分配此.reputmessagesagesagesesvice.setReputfromoffset。

  this.Recovertopicqueuetable();

  }

  让我们看一下方法:

  这是一个内部班级

  }

  这种方法的内容很多,我们仍然简单地总结:

  我们继续单击以查看其内部实现:

  创建对象时,将创建两个内部创建

  我们继续关注内部实施:

  首先是基于主题和queueid获取消耗对象。然后调用该方法

  然后,我们继续研究其内部实施:

  总结写作过程:

  我们继续研究其内部实施:

  在这里,我们简单地总结了:

  接下来,我们查看其核心逻辑:

  这里的逻辑比消费量复杂得多。让我们首先解释索引文件的组成

  我使用图来解释索引文件的过程来构建索引:

  就个人而言,尽管该指数指数比消费量更为复杂,但它足以知道,因为它的影响根本不像消费量那样强,但重点是了解Cunsumequeue索引。

  本文讲述了经纪人消息分布的过程。SO称为的分布是将消息写入用于构建填充和索引文件的索引中,以促进消费者快速消费。

  消息分布是一个独立的异步线程:,该线程将实时读取Commitlog中的消息,然后将消息的物理偏移(消息的物理偏移量)(可以位于物理消息中)为和平。

  好吧,让我们在这里写信。

  仅限于作者的个人层面,文章中有不可避免的事情,欢迎纠正!不要喷洒,谢谢

  原始:https://juejin.cn/post/7098545135306145823