在关闭kafka代理时,ctrl-c和kill-9有什么不同

kknvjkwl  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(532)

我正在学习Kafka官方教程,在multibroker部分遇到了一个奇怪的问题。
我将简要列出我所做的工作:
在端口2181上运行本地zookeeper
在港口9092,9093,9094运行三个Kafka经纪人
创建了一个包含一个分区和三个副本的主题:我的复制主题
在这个主题中产生了一些信息
然后我想测试一下Kafka的容错能力。而不是 kill -9 我使用了 ctrl-c 结束主题的开头。问题是:
我不能使用Kafka的任何信息。
怎么了?
p、 我使用的命令与上面提到的教程完全相同
Kafka1.00
--以下是一些关键输出:

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:my-replicated-topic   PartitionCount:1    ReplicationFactor:3 Configs:
    Topic: my-replicated-topic  Partition: 0    Leader: 0   Replicas: 0,1,2 Isr: 1,0,2

然后我按ctrl-c终止代理0:

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:my-replicated-topic   PartitionCount:1    ReplicationFactor:3 Configs:
    Topic: my-replicated-topic  Partition: 0    Leader: 1   Replicas: 0,1,2 Isr: 1,2

现在我不能从其他经纪人那里消费

bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9093 --from-beginning --topic my-replicated-topic

这是代理0的配置,其他代理的配置与此相同,只是代理id、端口和日志目录不同。

broker.id=0
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
b91juud3

b91juud31#

通过 Ctrl+C 与杀死via相比 kill -9 . kill -9 将发送 SIGKILL 终止进程并且进程无法避免的信号 Ctrl+C ,相当于 kill -3 会发出信号 SIGQUIT ,可以由进程处理,也可以忽略。

guz6ccqo

guz6ccqo2#

您的offsets.topic.replication.factor=1,因此如果您用客户的偏移量终止代理,则没有其他副本,因此您没有偏移量。
在您的\uu消费者\u偏移量主题中,复制因子为1不是容错配置
您不仅需要更改此配置,还必须将现有的使用者偏移主题修改为replication factor=3

相关问题