首页 文章

首先启动 Kafka 服务器和领导者失败阻止消费者

提问于
浏览
1

我基本上是在使用带有zookeeper.version=3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 00:39 GMTkafka_2.11-2.0.0来做 kafka 快速开始
我也使用 Ubuntu:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:    16.04
Codename:   xenial

我按以下顺序执行以下操作:

  • 开始管理员

  • 用端口 9092 启动 kafka server0

  • 用端口 9093 启动 kafka server1

  • 用端口 9094 启动 kafka server2

  • 创建一个主题:kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

  • 产生一些信息:kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic

  • 从 server0 消耗:kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

  • 从 server1 消耗:kafka-console-consumer.sh --bootstrap-server localhost:9093 --from-beginning --topic my-replicated-topic

  • 检查领导者 my-replicated-topic 并发现它是 server0 - >这里是棘手的部分;一个应该杀死 server1 然后可能是 server2 但从不服务器 0 然后恢复它们只是为了让 server0 成为 my-replicated-topic 的领导者

  • 杀死 server0

  • 检查新的领导者(恰好是 server2):kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

  • 向 server2 发出一些消息:kafka-console-producer.sh --broker-list localhost:9094 --topic my-replicated-topic

  • 从 server2(或 server1)消耗:kafka-console-consumer.sh --bootstrap-server localhost:9094 --from-beginning --topic my-replicated-topic - > 这将挂起,直到重新启动 server0

  • 再次启动 server0

  • 来自 server2 的消费者输出所有消息,包括当领导者时发送给 server2 的消息

有什么问题以及如何解决问题,以免哪个服务器成为领导者?

1 回答

  • 1

    我认为这是由于“__consumer_offsets”主题的复制因素。这在 server.properties 文件中设置为 1 用于测试目的。设置 offsets.topic.replication.factor=3 以获得高可用性。

    复制自_1 条评论

相关问题