如何扩展Kafka的broker

Posted roostinghawk

tags:

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

背景:因为公司收集终端盒子数据的kafka服务偶尔会倒,所以考虑使用kafka的分布式,增加broker节点,来提高系统的可用性。当然,zookeeper服务节点也是可以增加的,但不在本文范围内。

具体步骤如下:

1. 新加kafka服务,并启动

 如果是同一服务器,则可以拷贝新建server.properties的方式启动,具体参考官网

 如果是不同服务器,则需要下载解压同一版本的kafka,并修改zookeeper的设置,然后启动

 这里我用的是第二种方案,下面是server.properties中修改的三个配置

broker.id=1
listeners=PLAINTEXT://192.168.0.43:9093
zookeeper.connect=192.168.0.20:2181

启动命令

nohup /opt/kafka_2.12-2.4.0/bin/kafka-server-start.sh /opt/kafka_2.12-2.4.0/config/server.properties &

相应的停止命令

/opt/kafka_2.12-2.4.0/bin/kafka-server-stop.sh /opt/kafka_2.12-2.4.0/config/server.properties &

 

2. 重新给Topic分配副本

1)新建json文件increase-replication-factor.json,并输入如下内容

{"version":1,
"partitions":[{"topic":"activeRecords","partition":0,"replicas":[0,1]}]
}

2)执行分配命令

./bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file increase-replication-factor.json --execute

技术图片

 

3. 查看执行结果

./bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file increase-replication-factor.json --verify

 技术图片 

可以看到,因为log文件过多,导致复制操作还在执行

等待一段时间之后,再次查看执行结果

技术图片

 

最后查看该Topic状态(RelicationFactor和Replicas的变化),增加成功!

./bin/kafka-topics.sh --zookeeper localhost:2181 --topic activeRecords --describe

技术图片

 

如果尝试把节点0的kafka停掉,会发现Leader发生了变化

技术图片 

另外,中间发生了如下的错误,原因是两边的kafka版本不同,一个是2.10,一个是2.12,在将低版本升级后,问题解决。

Connection to 0 was disconnected before the response was read

  

参考:

kafka官网:http://kafka.apache.org/quickstart

kafka中文学习网站:https://www.w3cschool.cn/apache_kafka/

https://blog.csdn.net/lkforce/article/details/77864472 

https://blog.csdn.net/lzufeng/article/details/81743521

 

以上是关于如何扩展Kafka的broker的主要内容,如果未能解决你的问题,请参考以下文章

怎么查看kafka集群中所有broker节点

kafka 基本原理和概念

kafka备份机制——zk选举leader,leader在broker里负责备份

【kafka】kafka理论之partition & replication

如何获取kafka的broker保存的消费者信息?

如何构建高效的 Kafka broker 健康检查?