kafka源码—源码目录介绍

  • Post author:
  • Post category:其他



目录


介绍:


一.目录结构


二.core目录


三.client目录


介绍:

了解kafka项目的目录结构,才能去更好的阅读kafka源码,下面会整体介绍一下kafka源码目录结构,然后在着重讲core 和client两个核心目录,本文是以0.11.0版本为例讲解。

一.目录结构

bin: 启动脚本;

clients:生产者和消费者代码;0.11版本是java语言开发;

config: 配置文件;

core : kafka服务实例的代码,scala语言开发,实现了集群管理,分区副本管理,消息存储和消息获取,网络通信等功能;

docs:kakfa文档

examples:生产者消费者demo 启动脚本;

streams:kafka 流相关代码;

二.core目录

这个包下是kafka核心包,有集群管理,分区管理,存储管理,副本管理,消费者组管理,网络通信,消费管理等核心类。

admin包:执行管理命令的功能;

api 包: 封装请求和响应DTO对象;

cluster包:集群对象,例如Replica 类代表一个分区副本,Partition类代表一个分区;

common包: 通用jar包;

controller包: 和kafkaController(kc)相关的类,重点模块,一个kafka集群只有一个leader kc,该kc负责 分区管理,副本管理,并保证集群信息在集群中同步;

coordinator包:组协调者相关,负责处理消费者组的代码;

log包: 磁盘存储相关,重点模块;

network包: 网络相关,重点模块,使用的是NIO,从这里可学习如何应用java 的NIO类;

consumer包,producer好多废弃类,无需关注;

server包: kafka实例的各种管理类,核心包,也是重点;

tools 工具类。

三.client目录

下面是kafka项目目录结构,clients 包下面是生产者producer 和消费者consumer的代码。如果要看kafka是如何发送消息和消费消息的,可以看这个包下的源码 。重点关注KafkaProducer 和KafkaConsumer这两个类。



版权声明:本文为trntaken原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。