运维开发网

kafka在zookeeper中一些存储结构

运维开发网 https://www.qedev.com 2020-03-12 15:10 出处:网络 作者:运维开发网整理
本文主要查看kafka在zookeeper中的一些存储结构,便于更好的理解kafka的工作原理,其测试环境如下: kafka 0.8.1.1 zookeeper 3.4.5 1 Broker node 注册 当一个kafka broker启动后,会向zookeeper注册自己的节点信息,该节点为一个临时节点,当当broker断开和zookeeper的连接时,其临时节点将会被删除。 其路径为: /b

本文主要查看kafka在zookeeper中的一些存储结构,便于更好的理解kafka的工作原理,其测试环境如下:

kafka 0.8.1.1
zookeeper 3.4.5

1 Broker node 注册

当一个kafka broker启动后,会向zookeeper注册自己的节点信息,该节点为一个临时节点,当当broker断开和zookeeper的连接时,其临时节点将会被删除。

其路径为:

/broker/ids/[0...N]

其中[0..N]表示broker id(broker id唯一,不可以重复),znode的值为对应broker的相关信息,如下:

{
    "jmx_port": -1, //JMX的端口号
    "timestamp": "1460082147315",//broker启动的时间戳
    "host": "xx.xxx.xxx.xxx",//host
    "version": 1,//默认的版本
    "port": 9092  //broker进程的对外监听的端口号
}

如下为zk下的运行实例图:

kafka在zookeeper中一些存储结构

2 Broker Topic 注册

当一个broker启动时,会向zookeeper注册自己持有的topic和partitions信息。

其路径为:

/broker/topics/[topic]/partitions/[0...N]

其中[0..N]表示partition索引号。其zonode下的信息如下:

{
    "controller_epoch": 17,//中央控制器的总的选举次数
    "leader": 0,  //此partition的broker leader的id
    "version": 1, //默认版本号
    "leader_epoch": 1,//此partition的leader选举的次数
    "isr": [
        0
    ]    //同步副本组brokerId顺序列表
}

如下为zk下的运行实例图:

kafka在zookeeper中一些存储结构

3 Consumer id 注册

在kafka consumer的配置参数中有:

#消费者的ID,若是没有设置的话,会自增
consumer.id

当然,consumer id也可以手动设置。

在zookeeper查看相关consumer id的注册信息,其路径如下:

/consumers/[group_id]/ids/[consumer_id]

这仍然是一个临时的znode,此节点的值为格式如下:

{
    "version": 1,
    "subscription": { "user11": 1 },
    "pattern": "static",
    "timestamp": "1460083658252" }

{“topic_name”:#streams…},即表示此consumer目前所消费的topic + partitions列表。

如下为zk下的运行实例图:

kafka在zookeeper中一些存储结构

4 Consumer offset 跟踪

用来跟踪每个consumer group目前所消费的partition中最大的offset。

其路径为:

/consumers/[group_id]/offsets/[topic]/[partition_id]

此znode为永久节点,可以看出offset跟group_id有关,以表明当group中一个消费者失效,其他consumer可以继续消费。

如下为zk下的运行实例图:

kafka在zookeeper中一些存储结构

5 Partition Owner 注册

用来标记partition被哪个consumer消费,为临时节点。

其路径为:

/consumers/[group_id]/owners/[topic]/[partition_id]

如下为zk下的运行实例图:

kafka在zookeeper中一些存储结构

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号