Kafka快速入门
在rhel v6.9上使用kafka v2.1.0
当Kafka的一个经纪人倒下时,消费者无法收到数据。
执行的步骤:
1启动zookeeper
2启动kafka-server0(localhost:9092,Kafka卢格1)
三。启动kafka-server1(localhost:9094,Kafka洛2)
4创建主题“test1”,分区数=1,复制因子=2
5为主题“test1”运行producer
6运行消费者
7从制作人处发送消息
8在用户端接收消息。
以上所有步骤都没有任何问题。
当我关闭kafka-server0时,使用者停止从生产者获取数据。当我返回kafka-server0时,消费者开始从它停止的地方获取消息。
这些是使用的命令
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test1
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test1
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 1 --topic test1
当我使用--bootstrap server选项中指定的两个服务器运行使用者时,行为是相同的(使用者端没有收到消息)。
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092,localhost:9094 --topic test1
知道为什么即使主题test1的复制因子设置为2,当server0关闭时使用者仍停止接收消息吗?
Kafka0.10快速启动(kafka 0.10 quickstart)已经有了一个类似的问题,但并没有得到完全的回答:当“主要”代理关闭时,消费者将失败
2条答案
按热度按时间rryofs0p1#
在Kafka的最初版本中,偏移量是由zookeeper管理的,但是Kafka随着时间的推移不断演变,引入了许多新特性。现在Kafka在一个主题中管理偏移量。
您可以考虑这样一个场景:您创建了一个复制因子为1的主题。如果代理宕机,数据只在宕机的kafka节点上。所以你不能得到这些数据。同样的类比也适用于“消费者”主题。
您需要重新访问server.properties以获得所需的功能。但是,如果您仍然想使用来自副本分区的消息,那么您可能需要重新启动控制台使用者--从true开始
uurity8g2#
如果偏移量主题不可用,则不能使用。
看看这个
server.properties
文件,并查看上面的注解,并相应增加(仅适用于主题不存在的情况)根据你之前的问题,看起来只有一个复制品
查看如何增加现有主题的复制因子