【发布时间】:2018-08-07 20:35:16
【问题描述】:
我基本上是在使用 kafka_2.11-2.0.0 与 zookeeper.version=3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 00:39 GMT 一起做卡夫卡 quickstart。
我也使用 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 但永远不要杀死 server0 然后恢复它们只是为了让 server0 成为 my-replicated-topic 的领导者
- 杀死服务器0
- 检查新的领导者(恰好是 server2):
kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic - 向服务器 2 生成一些消息:
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 的消息
出了什么问题以及如何解决问题,所以不管哪台服务器成为领导者?
【问题讨论】:
标签: apache-kafka