如何扩展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

猜你喜欢

转载自www.cnblogs.com/roostinghawk/p/12261640.html