
kafka
文章平均质量分 60
~AC~
这个作者很懒,什么都没留下…
展开
-
图解kafka消息入批次RecordAccumulate过程
如果有哪里描述的有误,敬请指出。谢谢~ 前言 kafka消息从producer发送出去时并不是一条一条发送的,而是先发送到一个消息批次(RecordAccumulate)中,然后由sender线程异步的将消息批次中的消息发到broker。这也是kafka吞吐量高的主要原因之一。 那么问题来了,一条消息是怎么被发送到批次中的呢? 正文 RecordAccumulate结构 我们先来看数据结构 本次不涉及到的字段先忽略,消息批次中包含一个内存池和队列,这个队列就是实际存储消息的地方。我们可以通过下面这张图.原创 2021-07-14 18:38:19 · 492 阅读 · 0 评论 -
kafka---图解分区器策略
kafka发送的每条消息都会被指定一个分区,改分区就是消息所属的topic的分区。现在我们来看一下kafka消息的分区策略是什么样的。 下图描述了kafka发送消息时计算消息分区的过程 如果消息在创建时就被指定了分区,那么直接会选择该分区。具体流程入下图 如果消息没有指定分区,但是客户端有自定义分区策略那么直接会使用自定义的分区器来计算分区 如果消息没有指定分区并且客户端没有自定义分区器,那么会使用kafka默认的分区策略。它的逻辑是: 如果消息key为null,那么使用轮询策略,否则计算key原创 2021-07-12 23:35:27 · 256 阅读 · 3 评论