1. 环境准备2. Kafka_Broke_Leader选举2.1 新建4个分区4个副本2.2 停止redis04的kafka2.3 停止redis03的kafka2.4 启动redis04的kafka2.5 启动redis03的kafka2.7 停止redis02的kafka2.8 启动redis02的kafka
1. 环境准备
- Zookeeper集群
- Kafka集群
机器名 | IP | Zookeeper(2181) | Kafka(9092) |
redis01 | 192.168.92.145 | √ | √ |
redis02 | 192.168.92.146 | √ | √ |
redis03 | 192.168.92.147 | √ | √ |
redis04 | 192.168.92.148 | ㅤ | √ |
- redis01、redis02、redis03三台机器配置了Zookeeper启动脚本、Kafka启动脚本,可以快速启动
# 先启动ZK root@redis01:/usr/local/kafka# /home/bigdata/bin/zk1.sh start # 在启动Kafka root@redis01:/usr/local/kafka# /home/bigdata/bin/kf.sh start
- redis04没有添加再启动脚本,需要手动启动
root@redis04:/usr/local/kafka# bin/kafka-server-start.sh -daemon config/server.properties root@redis04:/usr/local/kafka# jps 3413 Jps 3386 Kafka
2. Kafka_Broke_Leader选举
2.1 新建4个分区4个副本
- 创建一个新的topic,4个分区,4 个副本
# 创建 root@redis01:/usr/local/kafka# ./bin/kafka-topics.sh --bootstrap-server redis01:9092 --topic henggao --create --partitions 4 --replication-factor 4 # 查看 root@redis01:/usr/local/kafka# ./bin/kafka-topics.sh --bootstrap-server redis01:9092 --topic henggao --describe
2.2 停止redis04的kafka
root@redis04:/usr/local/kafka# ./bin/kafka-server-stop.sh
在redis01查看Kafka集群
# 查看 root@redis01:/usr/local/kafka# ./bin/kafka-topics.sh --bootstrap-server redis01:9092 --topic henggao --describe
- 分析:由于机器redis04对应的是ISR中的3,redie04节点宕机
- 有一个发生变化
- Leader:3,Replicas:
3,0,2,1 —>Leader:0 - leader:1,Replicas:1,2,
3,0 —>Leader:1 - leader:0,Replicas:0,
3,1,2 —>Leader:0 - leader:2,Replicas:2,1,0,
3—>Leader:2
2.3 停止redis03的kafka
root@redis03:/usr/local/kafka# ./bin/kafka-server-stop.sh
在redis01查看Kafka集群
# 查看 root@redis01:/usr/local/kafka# ./bin/kafka-topics.sh --bootstrap-server redis01:9092 --topic henggao --describe
- 分析:由于机器redis03对应的是ISR中的2,redie03节点宕机,
- 有一个发生变化
- Leader:0,Replicas:
3,0,2,1 —>Leader:0 - leader:1,Replicas:1,
2,3,0 —>Leader:1 - leader:0,Replicas:0,
3,1,2—>Leader:0 - leader:2,Replicas:
2,1,0,3—>Leader:1
2.4 启动redis04的kafka
root@redis04:/usr/local/kafka# bin/kafka-server-start.sh -daemon config/server.properties
Leader没有变化,Isr中添加了3。
2.5 启动redis03的kafka
root@redis03:/usr/local/kafka# bin/kafka-server-start.sh -daemon config/server.properties
Leader没有变化,Isr中添加了2。
2.7 停止redis02的kafka
root@redis02:/usr/local/kafka# ./bin/kafka-server-stop.sh
在redis01查看Kafka集群
# 查看 root@redis01:/usr/local/kafka# ./bin/kafka-topics.sh --bootstrap-server redis01:9092 --topic henggao --describe
- 分析:由于机器redis02对应的是ISR中的1,redie02节点宕机,
- 有三个发生变化
- Leader:0,Replicas:3,0,2,
1—>Leader:3 - leader:1,Replicas:
1,2,3,0 —>Leader:2 - leader:0,Replicas:0,3,
1,2 —>Leader:0 - leader:1,Replicas:2,
1,0,3 —>Leader:2
参考:Leader Partition负载均衡Kafka19:Leader Parttition自动平衡
2.8 启动redis02的kafka
root@redis02:/usr/local/kafka# bin/kafka-server-start.sh -daemon config/server.properties
Leader没有变化,Isr中添加了2。