Kafka消费者不会收到数据时,其中一个经纪人是下跌

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

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)已经有了一个类似的问题,但并没有得到完全的回答:当“主要”代理关闭时,消费者将失败

rryofs0p

rryofs0p1#

在Kafka的最初版本中,偏移量是由zookeeper管理的,但是Kafka随着时间的推移不断演变,引入了许多新特性。现在Kafka在一个主题中管理偏移量。
您可以考虑这样一个场景:您创建了一个复制因子为1的主题。如果代理宕机,数据只在宕机的kafka节点上。所以你不能得到这些数据。同样的类比也适用于“消费者”主题。
您需要重新访问server.properties以获得所需的功能。但是,如果您仍然想使用来自副本分区的消息,那么您可能需要重新启动控制台使用者--从true开始

uurity8g

uurity8g2#

如果偏移量主题不可用,则不能使用。
看看这个 server.properties 文件,并查看上面的注解,并相应增加(仅适用于主题不存在的情况)


# The replication factor for the group metadata internal topics "__consumer_offsets" and "__transaction_state"

# For anything other than development testing, a value greater than 1 is recommended for to ensure availability such as 3.

offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1

根据你之前的问题,看起来只有一个复制品
查看如何增加现有主题的复制因子

相关问题