Kafka在zookeeper中存储的信息

Kafka在zookeeper中的存储结构

image.png

1.topic注册信息

/brokers/topics/[topic] :

存储某个topic的partitions所有分配信息

image.png

每个topic的信息

{
    
    
    "version":1,  // 版本编号目前固定为数字1
    "partitions":{
    
      // partitionId编号
        "1":[  //同步副本组brokerId列表
            101,
            103
        ],
        "0":[
            103,
            102
        ]
    }
}

partition状态信息

/brokers/topics/[topic]/partitions/[0…N] 其中[0…N]表示partition索引号
/brokers/topics/[topic]/partitions/[partitionId]/state

image.png

{
    
    
    "controller_epoch":33,  //表示kafka集群中的中央控制器选举次数
    "leader":102,    //表示该partition选举leader的brokerId
    "version":1,   //版本编号默认为1
    "leader_epoch":8,   // 该partition leader选举次数,
    "isr":[    // 同步副本组brokerId列表
        102,
        103
    ]
}

2.Broker注册信息

/brokers/ids/[0…N]

每个broker的配置文件中都需要指定一个数字类型的id(全局不可重复),此节点为临时znode(EPHEMERAL)
image.png

{
    
    
    "listener_security_protocol_map":{
    
    
        "PLAINTEXT":"PLAINTEXT"
    },
    "endpoints":[
        "PLAINTEXT://zjj101:9092"
    ],
    "jmx_port":-1,  // jmx端口号
    "host":"zjj101",  // 主机名或ip地址,
    "timestamp":"1614570663881",  //kafka broker初始启动时的时间戳,
    "port":9092, // kafka broker的服务端端口号,由server.properties中参数port确定
    "version":4  // 版本编号默认为1,
}

3.Controller epoch

/controller_epoch --> int (epoch)

此值为一个数字,kafka集群中第一个broker第一次启动时为1,以后只要集群中center controller中央控制器所在broker变更或挂掉,就会重新选举新的center controller,每次center controller变更controller_epoch值就会 + 1;
image.png

4.Controller注册信息

/controller -> int (broker id of the controller) 存储center controller中央控制器所在kafka broker的信息
image.png

{
    
    
    "version":1,   // 版本编号默认为1,
    "brokerid":101,  // kafka集群中broker唯一编号,
    "timestamp":"1614570663255"  // kafka broker中央控制器变更时的时间戳
}

猜你喜欢

转载自blog.csdn.net/qq_41489540/article/details/114260326