美文网首页
kafka Server启动分析

kafka Server启动分析

作者: 沐兮_d64c | 来源:发表于2018-12-26 12:28 被阅读0次

    1,启动入口

    1)bin/kafka-server-start.sh config/server-1.properties &
    2)启动类Kafka.scala的main方法。
    解析配置文件
    构造KafkaServerStartable对象

    image.png
    3)初始化组件
    创建zk客户端cluster_id和brokerId处理,启动定时任务线程池
    image.png
    4)创建并启动socket服务器,处理客户端socket连接。Create and start the socket server acceptor threads
    image.png

    2,配置文件简介

    1) image.png

    2)brokerStates


    image.png

    3,SocketServer重点类

    1)RequestChannel由ArrayBlockingQueue的requestQueue和一个ConcurrentHashMap的processors构成。

    image.png
    2)socketServer.startUp时,会创建Acceptor和processors
    createAcceptorAndProcessors
    通过listeners=PLAINTEXT://:9091创建Acceptor
    通过num.network.threads=3 创建3个Processor
    把processor加入SocketServer.RequestChannelrequestChannel.addProcessor(processor)
    SocketServer的processors放入Processor。 image.png
    3)将processors加入到Acceptor中,启动多个kafka-network-thread线程。
    image.png
    image.png

    4,kafka通信机制

    1)SocketServer处理过程

    image.png
    1个Acceptor负责接受客户端请求,N个Processor线程负责读写数据,M个Handler来处理业务逻辑。在Acceptor和Processor,Processor和Handler之间都有队列来缓冲请求。

    相关文章

      网友评论

          本文标题:kafka Server启动分析

          本文链接:https://www.haomeiwen.com/subject/hcxhlqtx.html