07 2020 档案
摘要:大家好,我是yes。 我们都知道 RocketMQ 和 Kafka 消息都是存在磁盘中的,那为什么消息存磁盘读写还可以这么快?有没有做了什么优化?都是存磁盘它们两者的实现之间有什么区别么?各自有什么优缺点? 今天我们就来一探究竟。 先说下快的主要原因就是顺序读写、mmap、sendfile。我们先来
阅读全文
摘要:前言 大家好,我是 yes。 这是Kafka源码分析第四篇文章,今天来说说 Kafka控制器,即 Kafka Controller。 源码类的文章在手机上看其实效果很差,这篇文章我分为两部分,第一部分就是直接图文来说清整个 Kafka 控制器事件处理全流程,然后再通过Controller选举流程进行
阅读全文
摘要:大家好,我是 yes。 最近我一直扎在消息队列实现细节之中无法自拔,已经写了 3 篇Kafka源码分析,还剩很多没肝完。之前还存着RocketMQ源码分析还没整理。今儿暂时先跳出来盘一盘大方向上的消息队列有哪些核心注意点。 核心点有很多,为了更贴合实际场景,我从常见的面试问题入手: 如何保证消息不丢
阅读全文
摘要:大家好,我是 yes。 今天来说说限流的相关内容,包括常见的限流算法、单机限流场景、分布式限流场景以及一些常见限流组件。 当然在介绍限流算法和具体场景之前我们先得明确什么是限流,为什么要限流?。 任何技术都要搞清它的来源,技术的产生来自痛点,明确痛点我们才能抓住关键对症下药。 限流是什么? 首先来解
阅读全文
摘要:大家好,我是 yes。 这是我的第三篇Kafka源码分析文章,前两篇讲了日志段的读写和二分算法在kafka索引上的应用 今天来讲讲 Kafka Broker端处理请求的全流程,剖析下底层的网络通信是如何实现的、Reactor在kafka上的应用。 再说说社区为何在2.3版本将请求类型划分成两大类,又
阅读全文
摘要:前言 其实这篇文章只是从Kafka索引入手,来讲述算法在工程上基于场景的灵活运用。单单是因为看源码的时候有感而写之。 索引的重要性 索引对于我们来说并不陌生,每一本书籍的目录就是索引在现实生活中的应用。通过寥寥几页纸就得以让我等快速查找需要的内容。冗余了几页纸,缩短了查阅的时间。空间和时间上的互换,
阅读全文