免责声明:我正在学习,显然我做错了什么。任何帮助表示赞赏!
设置:
我使用vagrant创建了一个带有3个节点的apache kafka集群(每个节点都有一个单独的zk和kafka进程在运行)。我想测试容错,所以我创建了一个复制的主题,当我'描述'它时,所有3个节点都启动:
while (this.Width >= 15)
{
this.Width--;
this.Left++;
Application.DoEvents();
}
测试容错:
在领导者(在这种情况下是节点1)我想杀死启动kafka的进程。所以我找到领导者的屁股来杀死它:
$KAFKA_HOME/bin/kafka-topics.sh --describe --zookeeper 192.168.33.21:2181 --topic replicated-topic-1
Topic:replicated-topic-1 PartitionCount:1 ReplicationFactor:3 Configs:
Topic: replicated-topic-1 Partition: 0 Leader: 1 Replicas: 2,3,1 Isr: 1,2,3
我认为杀死的pid是2975.我使用以下命令来杀死它:
ps -elf | grep server.properties
4 S root 2975 2900 0 80 0 - 10738 ? 15:40 pts/0 00:00:00 sudo /usr/local/kafka/kafka_2.11-0.10.0.0//bin/kafka-server-start.sh /usr/local/kafka/kafka_2.11-0.10.0.0//config/server.properties
0 S vagrant 3438 2900 0 80 0 - 2184 - 15:41 pts/0 00:00:00 grep server.properties
到目前为止一切顺利。我假设领导者的卡夫卡进程被杀死了。但是,describe命令说领导者没有失败:
sudo kill -9 2975
[1]+ Killed sudo $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties
为了确保我杀死了kafka进程,我尝试了这个命令:
$KAFKA_HOME/bin/kafka-topics.sh --describe --zookeeper 192.168.33.21:2181 --topic replicated-topic-1
Topic:replicated-topic-1 PartitionCount:1 ReplicationFactor:3 Configs:
Topic: replicated-topic-1 Partition: 0 Leader: 1 Replicas: 2,3,1 Isr: 1,2,3
我猜这个过程确实被杀了,但是kafka集群中的所有3个节点仍然处于运行状态。为了尝试,我杀死了流浪者正在运行的另一个过程(pid:3654):
ps -elf | grep server.properties
0 S vagrant 3654 2900 0 80 0 - 2183 - 15:45 pts/0 00:00:00 grep server.properties
但显然,它又以不同的pid开始:
sudo kill -9 3657
vagrant@debian-70rc1-x64-vbox4210:~$ ps -elf | grep server.properties
0 S vagrant 3661 2900 0 80 0 - 2183 - 15:50 pts/0 00:00:00 grep server.properties
我错过了什么。如何杀死领导者并测试容错?
答案 0 :(得分:0)
我刚刚意识到我做错了什么。为了找到最近开始的后台进程的pid(在这种情况下,它是kafka)我必须这样做:
echo $!
2942
为了杀死它,我不得不这样做:
sudo kill $!
我的群集确实容错...真棒!