Kafka整体结构以及模块分析

一、Kafka源代码的工程结构

如下图所示:

二、各模板简要说明

Xml代码

admin:管理员模块,操作和管理topic,paritions相关,包含create,delete topic,扩展patitions

Api:该模块主要负责交互数据的组装,客户端与服务端交互数据编解码

client:该模块比较简单就一个类,Producer读取kafka broker元数据信息topic和partitions,以及leader

cluster:该模块包含几个实体类,Broker,Cluster,Partition,Replica,解释他们之间关系:

Cluster由多个broker组成,一个Broker包含多个partition,一个topic的所有

partitions分布在不同broker的中,一个Replica包含多个Partition。

common:通用模块,只包含异常类和错误验证

consumer:consumer处理模块,负责所有客户端消费者数据和逻辑处理

contoroller:负责中央控制器选举,partition的leader选举,副本分配,副本重新分配,partition和replica扩容。

javaapi:提供java的producer和consumer接口api

log:Kafka文件存储模块,负责读写所有kafka的topic消息数据。

message:封装多个消息组成一个“消息集”或压缩消息集。

metrics:内部状态的监控模块

network:网络事件处理模块,负责处理和接收客户端连接

producer:producer实现模块,包括同步和异步发送消息。

serializer:序列化或反序列化当前消息

kafka:kafka门面入口类,副本管理,topic配置管理,leader选举实现(由contoroller模块调用)。

tools:一看这就是工具模块,包含内容比较多:

a.导出对应consumer的offset值.

b.导出LogSegments信息,当前topic的log写的位置信息.

c.导出zk上所有consumer的offset值.

d.修改注册在zk的consumer的offset值.

f.producer和consumer的使用例子.

utils:Json工具类,Zkutils工具类,Utils创建线程工具类,KafkaScheduler公共调度器类,公共日志类等等。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习123

windows下搭建Ruby(基于eclipse的环境)开发环境

31140
来自专栏yukong的小专栏

基于SpringCloud Finchley.SR1 、Spring Oauth2 SpringBoot 2.x、 vue、element-ui 微服务基础脚手架

github 地址 跪求大家star panda微服务工程地址 panda-admin前台工程地址

62030
来自专栏运维小白

12.17 Nginx负载均衡

Nginx负载均衡目录概要 vim /usr/local/nginx/conf/vhost/load.conf // 写入如下内容 upstream qq_co...

22260
来自专栏北京马哥教育

CentOS系统启动流程你懂否

一、Linux内核的组成 相关概念: Linux系统的组成部分:内核+根文件系统 内核:进程管理、内存管理、网络协议栈、文件系统、驱动程序。 ...

38540
来自专栏散尽浮华

su: 无法设置用户ID: 资源暂时不可用

登录非root用户,报错如下: [root@test ~]# su - app su: 无法设置用户ID: 资源暂时不可用 或者用ssh 命令连接服务器之后,如...

22860
来自专栏学一学大数据

一文上手zabbix安装配置【运维篇】

21230
来自专栏CaiRui

memcached服务

介绍 它是一套数据缓存系统或软件 用于动态应用系统中缓存数据库的数据,减少数据库的访问压力,达到提升性能的效果,实际应用环境中多用于数据库的cache的应用。它...

38480
来自专栏电光石火

eclipse配置tomcat运行时访问路径不要项目名称

1:双击打开tomcat 2:选择Modules,选择你要修改的项目 ? 3:点击Edit,把path修改成空或者你自己想要的路径即可! ?

31860
来自专栏Spark学习技巧

kafka管理神器-kafkamanager

https://github.com/yahoo/kafka-manager/releases

31820
来自专栏北京马哥教育

CentOS系统启动流程你懂否

一、Linux内核的组成 相关概念: Linux系统的组成部分:内核+根文件系统 内核:进程管理、内存管理、网络协议栈、文件系统、驱动程序。 ...

38050

扫码关注云+社区

领取腾讯云代金券