zoukankan      html  css  js  c++  java
  • Apache kafka系列之在zookeeper中存储结构

    1、topic注册信息

      /brokers/topics/[topic] :存储某个topic的partitions所有分配信息

     

    Schema:
    {
        "version": "版本编号目前固定为数字1",
        "partitions": {
            "partitionId编号": [
                同步副本组brokerId列表
            ],
            "partitionId编号": [
                同步副本组brokerId列表
            ],
            .......
        }
    }
    Example:
    {
    "version": 1,
    "partitions": {
    "0": [1, 2],
    "1": [2, 1],
    "2": [1, 2],
    }
    }
    说明:紫红色为patitions编号,蓝色为同步副本组brokerId列表
    

    2、partition状态信息

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

       /brokers/topics/[topic]/partitions/[partitionId]/state

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

    3、Broker注册信息

      /brokers/ids/[0...N]:每个broker的配置文件中都需要指定一个数字类型的id(全局不可重复),此节点为临时znode(EPHEMERAL)

    Schema:
    {
    "jmx_port": jmx端口号,
    "timestamp": kafka broker初始启动时的时间戳,
    "host": 主机名或ip地址,
    "version": 版本编号默认为1,
    "port": kafka broker的服务端端口号,由server.properties中参数port确定
    }
     
    Example:
    {
    "jmx_port": 6061,
    "timestamp":"1403061899859"
    "version": 1,
    "host": "192.168.1.148",
    "port": 9092
    }
    

    4、Controller epoch

        /controller_epoch -> int (epoch) :此值为一个数字,kafka集群中第一个broker第一次启动时为1,以后只要集群中center controller中央控制器所在broker变更或挂掉,就会重新选举新的center controller,每次center controller变更controller_epoch值就会 + 1

    5、Controller注册信息

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

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

    原文链接请参见:http://blog.csdn.net/lizhitao/article/details/23744675

  • 相关阅读:
    python使用pip离线安装库
    centos 6.5 ftp服务配置及客户端使用
    centos7 ntp服务器配置
    Python:如何排序(sort)
    python报OperationalError: (1366, "Incorrect string value..."的问题解决
    使用matplotlib画双纵轴坐标
    python安装PIL库
    【干货分享】前端面试知识点锦集04(Others篇)——附答案
    【干货分享】前端面试知识点锦集03(JavaScript篇)——附答案
    【干货分享】前端面试知识点锦集02(CSS篇)——附答案
  • 原文地址:https://www.cnblogs.com/moonandstar08/p/6308863.html
Copyright © 2011-2022 走看看