kafka 集群原理设计(三)之启动原理介绍

kafka 集群原理设计(三)之启动原理介绍

业务背景问题描述

现在有三个机器节点192.168.0.200、192.168.0.201、192.168.0.202,分别安装部署zookeeper、
kafka集群,每个topic有3个分区,3个副本,则kafka各个节点在刚启动时,是如何选择哪个Kafka节
点为管理节点,哪个副本为主,其余为副本?

在 Kafka 集群中,部署 ZooKeeper 和 Kafka 后,各个节点在启动时的行为包括以下几个步骤:

  1. ZooKeeper 启动和配置:每个节点启动 ZooKeeper,配置 ZooKeeper 集群。
  2. Kafka 启动和注册:每个 Kafka Broker 启动并向 ZooKeeper 注册自身信息。
  3. Controller 选举:ZooKeeper 选举出 Kafka Controller。
  4. Partition 领导者和副本分配:Kafka Controller 负责分配 Partition 的领导者和副本。

以下是详细的启动过程、实现原理和核心代码示意:

1. ZooKeeper 启动和配置

每个机器节点启动 ZooKeeper,并配置集群。

配置文件 (zoo.cfg) 示例:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.0.200:2888:3888
server.2=192.168.0.201:2888:3888
server.3=192.168.0.202:2888:3888
启动 ZooKeeper:
# 在每个节点上执行
bin/zkServer.sh start

2. Kafka 启动和注册

每个 Kafka Broker 启动并向 ZooKeeper 注册自身信息。

配置文件 (server.properties) 示例:
broker.id=0
listeners=PLAINTEXT://192.168.0.200:9092
log.dirs=/var/lib/kafka/logs
zookeeper.connect=192.168.0.200:2181,192.168.0.201:2181,192.168.0.202:2181
启动 Kafka Broker:
# 在每个节点上执行
bin/kafka-server-start.sh config/server.properties

3. Controller 选举

当所有 Broker 启动后,ZooKeeper 开始选举 Kafka Controller。Controller 是负责管理集群范
围内的管理任务的 Broker。

核心代码示例(ControllerElection.scala):
class ControllerElection(zooKeeperClient: KafkaZkClient) {
   
  def elect
  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值