Skip to main content

集群管理

一、连接集群

在Kafka管理模块首页,连接需要管理的Kafka集群

image-20220712161158411

二、集群管理

  • 集群信息查看

    • 查看Kafka的基本信息,包括集群名称、接入时间、版本号、ZK地址、Broker地址

    • 查看集群的实时指标,指标项及其说明如下表格:

      指标名称指标含义
      messageIn(条/s)每秒发送到kafka的消息条数
      byteIn(KB/s)每秒发送到kafka的字节数
      byteOut(KB/s)每秒流出kafka的字节数
      (包括所有消费组消费的流量。如果是Kafka版本较低,这个还包括副本之间同步的流量)
      byteRejected(KB/s)每秒被拒绝的字节数
      failedFetchRequest每秒拉取失败的请求数
      failedProduceRequest每秒发送失败的请求数
      totalProduceRequest每秒总共发送的请求数,与messagesIn的区别是一个是发送请求里面可能会有多条消息
      totalFetchRequest每秒总共拉取消息的请求数

    image-20220712162109170

  • Broker管理

    • Broker列表展示集群中的Brokers信息,包括端口信息、状态、启动时间、使用率、副本状态等
    • 运行指标信息和集群指标相同,只是反应的是该Broker的范围,并且支持查看波动曲线图。
    note

    Leader Rebalance介绍

    原理:

    当一个broker停止或者crash时,所有本来将它作为leader的分区将会把leader转移到其他broker上去。极端情况下,会导致同一个leader管理多个分区,导致负载不均衡。同时当这个broker重启时,如果这个broker不再是任何分区的leader,kafka的client也不会从这个broker来读取消息,从而导致资源的浪费。

    kafka中有一个被称为优先副本(preferred replicas)的概念。如果一个分区有3个副本,且这3个副本的优先级别分别为0,1,2,根据优先副本的概念,0会作为leader 。当0节点的broker挂掉时,会启动1这个节点broker当做leader。当0节点的broker再次启动后,会自动恢复为此partition的leader。不会导致负载不均衡和资源浪费,这就是leader的均衡机制。

    功能

    平台提供这个功能,可以在集群配置未开启Leader Rebalance的情况下,手动进行Rebalance操作。

    用户可以在conf/server.properties文件中开启自动rebalance:auto.leader.rebalance.enable true

  • Controller管理

    • Controller介绍

      在Kafka集群中会有一个或多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。具备控制器身份的broker需要比其他普通的broker多一份职责,具体细节如下:

      • 监听分区相关的变化

        • 为ZK中的/admin/reassign_partitions节点注册PartitionReassignmentHandler,用来处理分区重新分配的动作
        • 为ZK中的/admin/isr_change_notification节点注册IsrChangeNotificetionHandler ,用来处理ISR副本集合的变更动作
        • 为ZK中的admin/preferred-replica-election节点添加PreferredReplicaElectionHandler,用来处理优先副本选举的动作
      • 监听主题相关的变化

        • 为ZK中的/brokers/topics节点添加TopicChangeHandler,用来处理主题增减的变化
        • 为ZK中的/admin/delete_topics节点注册TopicDeletionHandler,用来处理主题的删除动作
      • 监听Broker的变化

        • 为ZK中的/brokers/ids节点添加BrokerChangeHandler,用来处理Broker增减的变化
      • 从ZK中获取Broker、Topic、Partition相关的元数据信息

        • /brokers/topics/<topic>节点注册PartitionModificationHandler,主题中分区分配的变化
      • 启动并管理分区状态机和副本状态机

      • 更新集群的元数据信息,并同步给其它的Broker

      • 如果开启了自动优先副本选举,那么会后台启动一个任务用来自动维护优先副本的均衡。

  • Controller选举

    • 添加候选Brokers
    • 当原Controller节点被删除/关闭时,会触发新一轮的Controller选举,选举范围就是候选Brokers
    • 集群记录Controller变化历史

    image-20220712165935176