程序员

kafka源码愫读(1)、总体架构

2021-02-01  本文已影响0人  桥头放牛娃

1、拓扑结构

kafka拓扑结构.png

2、基本组成

3、zk节点说明

kafka的zk节点.png

示例:

{ "version": 1, "partitions": { "0": [1, 2], "1": [2, 1], "2": [1, 2] } }

示例:

{ "controller_epoch": 1, "leader": 2, "version": 1, "leader_epoch": 0, "isr": [2, 1] }

示例:

{ "jmx_port": 6061, "timestamp": "1403061899859", "version": 1, "host": "192.168.1.148", "port": 9092 }

示例:

{ "version": 1, "brokerid": 3, "timestamp": "1403061802981" }

示例:

{ "version": 1, "topics": ["foo", "bar"] }

示例:

{ "version": 1, "config": { "config.a": "x", "config.b": "y" } }

4、Broker模块

kafka的server模块.png

kafka集群一般由多个 broker 节点构成,Kafka 会从中选举一个 broker 节点作为 Leader 角色,并通过节点上运行的 KafkaController 组件控制整个集群中各个 broker 节点的协同运行,以统一对外提供服务。就单个 broker 节点而言,Kafka 会为节点绑定一个 Acceptor,用于接收来自客户端和其它 broker 节点的连接,Processor 组件会从这些连接中获取请求并交由 Handler 线程进行处理。Handler 基于 KafkaApis 组件解析具体的请求类型并分发给具体的组件,同时负责构造和发送响应结果。KafkaApis组件使用LogManager、ReplicaManager 和 GroupCoordinator等组件完成协议的处理。

上一篇 下一篇

猜你喜欢

热点阅读