layout: post title: "花了一年多的时间,写了 30 篇关于 Kafka 的文章" categories: Kafka tags: kafka
讲解了 Kafka 副本之间复制日志的一些事,也是我的经典之作,值得品味,同时日志复制也是 Kafka 最核心的概念之一:
从缓存申请到缓存归还详细剖析了 Kafka Producer 的缓冲池,同时详细说明了关于缓冲池调优的一些关键性要点:
深度剖析 Kafka Producer 的缓冲池机制【图解 + 源码分析】
从 Kafka 消费组模型概念中讲解了 Kafka 消费组重平衡机制的作用到涉及的一些参数设置注意事项,最后用流程图举例了重平衡的几个场景:
讲述了 Kafka ISR 副本同步机制的要点以及后续升级的设计变动:
关于 Kafka V0、V1、V2 版本的消息格式的一些变动以及这些变动解决了哪些问题,这篇文章都有详细的描述:
想要快速了解 Kafka 底层存储文件长什么样子?我建议你看下这篇文章:
对于初学者,可能傻傻分不清 RocketMQ 队列和 Kafka 分区副本的区别是什么,这篇文章可以为你解答:
很多用户问起我能不能单独让某些用户只消费指定的分区?而不是由 Kafka 去决定?我回答他 Kafka 是可以做到的,然后我就推荐这位用户看了这篇文章:
现有的消息引擎,想要做到严格的顺序消费,几乎不可能做到,而且代价非常大,以下三篇文章都是关于顺序消费的文章,不一定说得都对,同时也是我在工作过程中学习总结出来的:
Kafka/RocketMQ 多线程消费时如何保证消费顺序?
Kafka 分区重分配是一个非常重的操作,一般来说集群扩容都会涉及到分区重分配,那么它的流程究竟是怎样的?我从源码的角度出发,带你揭开它的神秘面纱:
有些时候我们不得不对集群中某些废弃的主题进行删除操作,毕竟主题太多,会影响集群性能,那么 Kafka 删除过程是怎么样的?这篇文章或许可以给你答案:
老运维了:
这篇文章为公司双十一前打了一剂强心剂,同时这篇文章在 csdn 上高达 1.4W 的阅读,是什么让这篇文章充满着诱惑力?
某次运维老哥因为集群某个节点关闭等待时间太长了,直接 kill -9 暴力解决,导致该节点重启失败,又恰好导致某个分区不可用了,为了找出具体原因我花了周末两天时间去排查,我把排查过程与重启失败原因到最后如何尽量避免消息丢失用了三篇文章去描述,其中我是如何尽量避免消息丢失的具体操作,只有深入 Kafka 相关机制后你才会懂的操作,值得品味与学习:
当 Kafka 分区不可用且 leader 副本被损坏时,如何尽量减少数据的丢失?
当缓冲池满了,当然就会阻塞啦,好像没啥可说的,但你就不想知道它是怎么具体是阻塞的吗?为了验证它会阻塞的事实,我把它的整个过程的写下来了:
这篇文章描述了 max.poll.interval.ms 和 max.poll.records 之间的联系:
这篇文章描述了 batch.size 和 max.request.size 之间的联系
从三个维度独创性地设计了一个能够大幅提高 Kafka 顺序消费吞吐量的线程模型,用 6 千字详细描述了整个设计过程:
Kafka 消息大小的设置还是挺复杂的一件事,以下文章可以为你排忧解难:
吞吐量上不去,老是被用户质疑集群性能问题?也许可以把这篇文章分享给他:
中通消息服务运维平台支撑了中通日均 1000+ 亿的消息流转量,你不想了解它内部消费线程是如何实现的吗?
老面试官了: