美文网首页
如何查看本机中的 Kafka 是 Controller 节点还是

如何查看本机中的 Kafka 是 Controller 节点还是

作者: 笔头还没烂 | 来源:发表于2022-08-14 16:53 被阅读0次

    Kafka是公平式主从架构【即允许从节点选举成为新的主节点】。Kafka集群中所有的Broker节点分为两种,一个是Controller Broker主节点,一种是普通的Broker从节点。

    主节点:Kafka Broker【Controller】
    (1)是一种特殊的Broker,从所有的Broker中选举出来的,负责普通Broker的工作;
    (2)负责管理所有的从节点:Topic、分区和副本【负责决定一个分区中leader副本和controller副本】
    (3)每次启动集群,会从所有Broker中选举一个Controller【由zookeeper实现】
    从节点:Kafka Broker
    (1)对外提供读请求
    (2)其他的Broker监听Controller在zookeeper中创建的临时节点,如果临时节点消息,即Controller故障,zookeeper会从Broker中选举一个新的Controller.

    那么,我们如何查看本机中的 Kafka 是Controller 还是普通的 Kafka Broker呢?(虽然 Kafka 本身不需要我们去关心谁是主节点谁是从节点,无论是Kafka 3.0之前依赖 zk 的主从选举机制还是Kafka 3.0 之后它内部的主从选举机制,都会帮它完成这一点。)

    我们通过 jps 是无法看出谁是主,谁是从。我们需要到 zookeeper 中去查看。命令如下:
    (1)我们去到 zookeeper 的 bin 目录:

    cd /export/server/zookeeper-3.4.6/bin/
    

    (2)我们运行 zkCli.sh 脚本

    sh zkCli.sh
    

    (3)我们通过 ls / 的命令,来查看当前 zookeeper 下所有的子节点:

    [zk: localhost:2181(CONNECTED) 1] ls /
    [cluster, controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]
    

    (4)我们可以通过 ls /controller 来查看 controller 下是否有子节点(通过该命令可以看到controller下并无子节点)

    [zk: localhost:2181(CONNECTED) 3] ls /controller
    []
    

    (5)我们可以通过 get /controller 命令来查看谁是 Kafka 的主节点

    [zk: localhost:2181(CONNECTED) 4] get /controller
    {"version":1,"brokerid":0,"timestamp":"1660444862682"}
    cZxid = 0x50000003f
    ctime = Sun Aug 14 10:41:02 CST 2022
    mZxid = 0x50000003f
    mtime = Sun Aug 14 10:41:02 CST 2022
    pZxid = 0x50000003f
    cversion = 0
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x2829a1718820001
    dataLength = 54
    numChildren = 0
    

    可以看到,brokerid 为0 的机器就是我们的 Kafka 主节点。而 Brokerid 是我们安装好 Kafka 后必须在某台机器上所做的对应的 Kafka 的相关配置。Kafka中,每个节点的节点id(Brokerid)必须不同。

    相关文章

      网友评论

          本文标题:如何查看本机中的 Kafka 是 Controller 节点还是

          本文链接:https://www.haomeiwen.com/subject/baacgrtx.html