查看指定topic信息
./bin/kafka-topics.sh --zookeeper 192.168.1.4:2181 --describe --topic event-track-topic
上传 replication.json 文件到kafka目录下,文件内容:
{
"version": 1,
"partitions": [
{
"topic": "event-track-topic",
"partition": 0,
"replicas": [
1,
2,
3
]
},
{
"topic": "event-track-topic",
"partition": 1,
"replicas": [
2,
3,
1
]
},
{
"topic": "event-track-topic",
"partition": 2,
"replicas": [
3,
1,
2
]
},
{
"topic": "event-track-topic",
"partition": 3,
"replicas": [
1,
2,
3
]
},
{
"topic": "event-track-topic",
"partition": 4,
"replicas": [
2,
3,
1
]
}
]
}
添加副本
./bin/kafka-reassign-partitions.sh --zookeeper 192.168.1.4:2181 --reassignment-json-file replication.json --execute
使用verify参数来检查上面的执行计划是否完成
./bin/kafka-reassign-partitions.sh --zookeeper 192.168.1.4:2181 --reassignment-json-file replication.json --verify
再看看结果:
./bin/kafka-topics.sh --zookeeper 192.168.1.4:2181 --describe --topic event-track-topic
添加副本就结束了!
但是为什么要添加副本呢,还是在一开始部署的时候没有考虑周全,现在回想,使用kafka有两个点一定要注意:
1. kafka的集群一定要最少三台broker,否则副本都开不了,无法保证高可用。
2. server.properties 初始副本数就调整为3,不然topic创建之后还是要额外调整。
3. 消费组信息保存在__consumer_offsets这个topic,要确保它的副本数大于1(最好3以上),不然挂掉一个broker会导致集群停止消费