zoukankan      html  css  js  c++  java
  • 【Kafka源码】Kafka代码模块

    Kafka源码依赖于Scala环境,首先需要安装scala,这块请自行百度进行安装。

    传送门

    当然,我们要分析源码,需要下载源码,请自行从github上面下载。

    说明:本文使用的kafka版本为0.10.0.1,这是目前公司使用的版本。

    下面说明下kafka源码的工程结构:
    image

    下面主要对core目录模块进行说明,这块是kafka的核心。

    • admin:管理员模块,操作和管理topic,paritions相关,包含create,delete topic,扩展patitions
    • api:这块主要负责数据的组装,客户端和服务端数据交互的组装
    • client:这个模块比较简单,只有一个类,主要是获取一些元数据,包括topic、broker等
    • cluster:该模块定义了几个在kafka中比较重要的类:Broker,BrokerEndPoint,Cluster,EndPoint,Partition,Replica等,后续我们会对他们之间的关系进行分析
    • common:通用类,定义了一些异常类等等
    • consumer:comsumer处理模块,负责与消费者相关的操作
    • controller:负责中央控制器选举,partition的leader选举,副本分配,副本重新分配,partition和replica扩容
    • coordinator:协调器,rebalance的一些协调器,比如延迟心跳等
    • javaapi:kafka提供出来的java生产消费的api
    • log:文件存储模块,负责读写所有kafka的topic消息数据,也就是消息持久化模块
    • message:封装多个消息组成一个“消息集”或压缩消息集
    • metrics:内部状态监控模块
    • network:kafka的网络处理模块,负责接受和处理客户端连接
    • producer:生产者模块,包括同步和异步发送消息
    • security.auth:安全认证模块
    • serializer:序列化和反序列化工具
    • server:kafka服务启动相关内容
    • tools:工具模块,内容挺多,主要是与kafka相关的工具
    • utils:通用工具模块,包括zk等等
    • Kafka:程序入口
  • 相关阅读:
    JVM调优之Tomcat启动参数配置及详解
    项目启动部署时报错:java.lang.NoSuchMethodError
    Springboot系列:@SpringBootApplication注解
    Tomcat下部署SpringBoot
    springboot 使用传统方式部署
    Spring Boot 学习笔记一(SpringBoot启动过程)
    Spring Boot【快速入门】
    Windows系统CPU内存网络性能统计第一篇 内存
    MinGW-w64非官方编译器集成安装包(很清楚)
    SyncML是一平台无关的信息同步标准协议集
  • 原文地址:https://www.cnblogs.com/f-zhao/p/7715610.html
Copyright © 2011-2022 走看看