你不知道的kafka配置broker.id

Posted 大数据从业者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你不知道的kafka配置broker.id相关的知识,希望对你有一定的参考价值。

前言

随着大数据技术普及率越来越高,门槛越来越低,大数据平台厂商也是层出不穷。国内几个规模比较大的厂商,基本都会基于HDP发行商,再次开发或者直接简单包装,就拿到市场上售卖。部分厂商还会涉及到ambari或者特定组件(Spark、Flink、Hive、Hbase等)的改进优化。而有些厂商无非就是直接集成组件的开源版本,实时跟踪社区的发展而已。所以,基于ambari提供的接口集成各种大数据组件,也算是一种最基本的基本功了。如果是集成kafka的话,会涉及到一个特殊的配置项,那就是broker.id。

正文

如官网所描述的,kafka broker.id是必须配置的。如图:

但是这里的”必须配置”说的是这个配置必须有,但不一定要用户自己配置(当然用户可以自己配置),也是可以由kafka broker动态生成配置的。如图

为什么扯到这些呢?

因为集成kafka到ambari时,如果用户自己管理配置broker.id,需要实现一些很恶心的检查机制,以确保公用同一个zookeeper集群的kafka集群中各个broker的broker.id必须唯一(这是官网要求,否则broker会启动失败)。比如:可能每启动一个broker,都需要到zookeeper中/brokers/ids节点check一下当前使用的broker.id是否已经使用,这会很恶心。可能有人会说,可以一次性提前分配好:比如以IP区分,可是集群内IP可能会改变的;那就用mac区分,这个每个机器都是唯一的。可是broker.id是int类型,而mac是6字节,做不到一一对应的。

结论

老老实实用broker自己动态配置的broker.id吧。


以上是关于你不知道的kafka配置broker.id的主要内容,如果未能解决你的问题,请参考以下文章

虚拟机网络地址配置你不知道的事儿-服务器的种类

你不知道的事——nodeJS安装环境配置问题

SpringBoot基础篇之@Value中哪些你不知道的知识点

你不知道这份超详细JVM内存结构?Java开发者必看

【基础系列】ConfigurationProperties 配置绑定中那些你不知道的事情

2021最新Java笔试题目,你不懂还不学?