kafka
kafka相关原理&源码分享
疯狂哈丘
这个作者很懒,什么都没留下…
展开
-
kafka 架构设计简介(一)
一、概述kafka是一个分布式的消息系统,由LinkedIn开发,后成为Apache的一部分。它以水平扩展和高吞吐率被广泛使用。最近开始深入学习kafka,然后打算写一个kafka系列文章,这是第一篇。虽然目前网上关于kafka的文章有很多,很多都写的很详细,但是还是想自己整理一遍。一方面为了更好的巩固,另一方面也为了以后复习起来方便。本篇对kafka的整个架构以及概念做一些简单的介绍...原创 2018-05-15 22:48:44 · 1073 阅读 · 0 评论 -
Kafka Producer详解(二)
一、Producer介绍在kakfa中,生产者采用push的方式想kafka集群提交数据。kakfa官方提供了一个producer的api,方便我们调用代码向集群发送消息。 Producer所需要的maven依赖如下:<dependency> <groupId&g原创 2018-07-31 22:30:04 · 7513 阅读 · 0 评论 -
kafka server启动流程 & shutdown实现(三)
平常我们通过命令 kafka-server-start /usr/local/etc/kafka/server.properties 启动,kafka的启动类是Kafka.scala,最终会调用Kafka.scala类的main方法。 另外,启动脚本中还会设置相关JVM参数,如log4j配置文件地址、JVM堆大小等等。下面通过源码简单分析下kafka的启动流程以及shutdown的实现。本系...原创 2018-08-01 20:47:17 · 2358 阅读 · 0 评论 -
kafka 请求处理与RPC原理解析(四)
kafka server启动后,会监听一些端口,然后开始接收请求进行日常的工作。 与请求处理相关的组件有 SocketServer、KafkaApis、KafkaRequestHandlerPool。这些都是在kafka server启动时初始化并开始运行的。SocketServer是一个NIO服务,基于N+M的线程模型,由N个Acceptor线程以及M个Processor线程组成,和netty...原创 2018-08-02 21:03:14 · 4952 阅读 · 0 评论 -
Kafka Producer请求处理机制(五)
文章目录Kafka Producer请求处理机制KafkaApisReplicaManagerPartitionLogLogSegmentKafka Producer请求处理机制Kafka在处理Producer请求时,主要涉及的组件有KafkaApis、ReplicaManager、Partition、Log、LogSegment。KafkaApiskafka接收到producer请求后...原创 2018-09-19 21:12:31 · 1918 阅读 · 0 评论 -
Kafka LogManager详解(六)
文章目录一、LogManager结构二、LogManager的创建检查日志目录加载日志目录的文件三、启动LogManager4个定时任务四、旧的日志段删除任务根据时间策略删除相关日志根据日志大小删除相关日志五、刷盘任务六、日志恢复检查点任务任务执行的方法offset-checkpoint的存储何时刷新recovery-checkpoint如何利用recovery-checkpoint恢复日志七、分...原创 2018-09-20 20:51:38 · 2895 阅读 · 1 评论 -
Kafka 日志清理机制——LogCompact(七)
文章目录一. 日志清理是干什么的?二. 清理相关原理三、墓碑消息(tombstone)四、日志segment合并五、清理线程的启动六、通过dirtyRatio获取要清理的partition日志一. 日志清理是干什么的?kafka的日志清理机制主要用于缩减日志的大小,它并不是指通过压缩算法对日志文件进行压缩,而是对重复的日志进行清理来达到目的。在日志清理过程中,会清理重复的key,最后只会保留最...原创 2018-09-20 20:55:35 · 11433 阅读 · 7 评论 -
ReplicaManager 详解(八)
文章目录一、ReplicaManager简介二、ReplicaManager的创建和启动三、ReplicaManager管理的两个定时任务1、ISR过期管理任务2、ISR变更通知任务四、ReplicaManager处理的请求类型五、副本复制数据leader处理follow的fetch请求leader如何推进HW一、ReplicaManager简介replicaManager主要用来管理topi...原创 2018-09-26 22:55:45 · 1086 阅读 · 0 评论 -
Consumer 加入&离开 Group详解(九)
文章目录一、GroupCoordinator 概念__consumer_offsetsConsumer如何找到对应的GroupCoordinator二、Consumer加入Group流程GROUP_COORDINATOR请求JOIN_GROUP请求SYNC_GROUP请求三、Group的状态变更Empty状态AwaitingSync状态Stable状态Dead状态正常consumer加入group...原创 2018-10-30 20:54:34 · 2446 阅读 · 0 评论 -
Consumer 拉取日志流程详解(十)
文章目录一、Consumer的poll模型poll执行流程相关源码解析二、获取要消费的partition三种订阅模式AUTO_TOPICS 和 AUTO_PATTERN模式USER_ASSIGNED模式三、获取partition当前commitedOffset四、Consumer 消费数据broker 处理 FETCH 请求五、offset提交同步和异步提交自动提交offset一、Consume...原创 2018-11-03 23:41:59 · 2082 阅读 · 0 评论 -
TimingWheel 时间轮详解
在kafka中,有许多请求并不是立即返回,而且处理完一些异步操作或者等待某些条件达成后才返回,这些请求一般都会带有timeout参数,表示如果timeout时间后服务端还不满足返回的条件,就判定此次请求为超时,这时候kafka同样要返回超时的响应给客户端,这样客户端才知道此次请求超时了。比如ack=-1的producer请求,就需要等待所有的isr备份完成了才可以返回给客户端,或者到达timeou...原创 2018-08-27 21:08:23 · 3366 阅读 · 0 评论