详细解析 kafka manager 的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详细解析 kafka manager 的使用相关的知识,希望对你有一定的参考价值。

参考技术A

下面已常用的选项作说明

下面对画方框的三列做着重解释。

注意如下这种情况也是不计算作倾斜的。

此时,broker2 拥有 3 个 leader 分区,超过平均范围的 2 个,所以 broker2 就 Leader 分区倾斜了,倾斜率 1/5=20%。

用下图举例说明:

上面三个参数对于衡量 topic 的稳定性有重要的影响:
Broker Skew : 反映 broker 的 I/O 压力,broker 上有过多的副本时,相对于其他 broker ,该 broker 频繁的从 Leader 分区 fetch 抓取数据,磁盘操作相对于其他 broker 要多,如果该指标过高,说明 topic 的分区均不不好,topic 的稳定性弱;
Broker Leader Skew :数据的生产和消费进程都至于 Leader 分区打交道,如果 broker 的 Leader 分区过多,该 broker 的数据流入和流出相对于其他 broker 均要大,该指标过高,说明 topic 的分流做的不够好;
Under Replicated : 该指标过高时,表明 topic 的数据容易丢失,数据没有复制到足够的 broker 上。

下面着重讲述红框部分:

上述是关于“优先副本”的相关描述,即在理想的状态下,分区的 leader 最好是 “优先副本”,这样有利于保证集群中 broker 的领导权比较均衡。重新均衡集群的 leadership 可采用 kafka manager 提供的工具:

一般而言,手动调整、系统自动分配分区和添加分区之后,都需要调用 Reassign Partition

kafka manager 能够获取到当前消费 kafka 集群消费者的相关信息。

参考
[1]: Kafka副本同步机制理解
[2]: kafka维护工具使用指南
[3]: kafka 中文文档
[4]: Replication tools

kafka-manager配置和使用

kafka-manager配置

  最主要配置就是用于kafka管理器状态的zookeeper主机。这可以在conf目录中的application.conf文件中找到。

kafka-manager.zkhosts="my.zookeeper.host.com:2181"

  当然也可以声明为zookeeper集群。

kafka-manager.zkhosts="my.zookeeper.host.com:2181,other.zookeeper.host.com:2181"

  另外也可以通过环境变量ZK_HOSTS来表示。

ZK_HOSTS="my.zookeeper.host.com:2181"

  自定义kafka-manager功能,类似于权限管理。

application.features=["KMClusterManagerFeature","KMTopicManagerFeature","KMPreferredReplicaElectionFeature","KMReassignPartitionsFeature"]
  • KMClusterManagerFeature - allows adding, updating, deleting cluster from Kafka Manager
  • KMTopicManagerFeature - allows adding, updating, deleting topic from a Kafka cluster
  • KMPreferredReplicaElectionFeature - allows running of preferred replica election for a Kafka cluster
  • KMReassignPartitionsFeature - allows generating partition assignments and reassigning partitions

kafka-manager打包

  下面的命令将创建一个zip文件,可用于部署应用程序。

./sbt clean dist

  更多的玩法配置请参考:production deployment/configuration.

  这个命令执行的会很慢,而且可能会失败,要反复执行几次。不过我已经执行好了,访问链接: https://pan.baidu.com/s/1123fRCT9ywEgiV6HjzSluw 提取码: r86e 。

kafka-manager运行

  经过上一步打包好之后会生成一个zip,具体zip的位置可以看输出日志。解压zip文件,进入kafka-manager目录。

bin/kafka-manager

  或者指定配置文件位置和端口

bin/kafka-manager -Dconfig.file=/path/to/application.conf -Dhttp.port=8080

  也可以指定java home的位置

 bin/kafka-manager -java-home /usr/local/oracle-java-8

  修改conf/application.conf如下属性

play.http.context = "/kafka-manager"
kafka-manager.zkhosts="localhost:2181"
kafka-manager.zkhosts=${?ZK_HOSTS}
application.features=["KMClusterManagerFeature","KMTopicManagerFeature","KMPreferredReplicaElectionFeature","KMReassignPartitionsFeature"]

  默认的端口是9000

kafka-manager界面详情

  集群监控信息

   技术分享图片

  技术分享图片

   Topic配置信息

  技术分享图片

   Topic对应的消费分组信息

   技术分享图片

   消费者消费详情

  技术分享图片

  消费者列表信息

   技术分享图片

   Borker信息

  技术分享图片

  技术分享图片

以上是关于详细解析 kafka manager 的使用的主要内容,如果未能解决你的问题,请参考以下文章

Kafka监控之雅虎kafka-manager

kafka源码解析之九ReplicaManager

一文详细解析kafka重平衡机制

kafka-manager配置和使用

Kafka集群管理工具kafka-manager的安装使用

Kafka集群管理工具kafka-manager的安装使用