我基本上是在使用带有zookeeper.version=3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 00:39 GMT
的kafka_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 回答
我认为这是由于“__consumer_offsets”主题的复制因素。这在 server.properties 文件中设置为 1 用于测试目的。设置 offsets.topic.replication.factor=3 以获得高可用性。
复制自_1 条评论