【问题标题】:Not able to read messages from kafka consumer in kafka cluster setup无法在 kafka 集群设置中读取来自 kafka 消费者的消息
【发布时间】:2021-04-26 14:11:36
【问题描述】:

我在一个 kafka 集群中创建了两个 kafka 代理。当一个经纪人倒闭时,我无法向 kafka 消费者获取任何数据。 我正在使用这个命令来读取来自消费者的消息:

bin/kafka-console-consumer.sh --topic test_kafka_cluster \
    --bootstrap-server 127.0.0.1:9092,127.0.0.2:9092 --from-beginning

【问题讨论】:

    标签: apache-kafka kafka-consumer-api kafka-cluster


    【解决方案1】:

    这里根据您的控制台消费者配置,这里使用的 IP 地址是 127.0.0.1 和 127.0.0.2,两个引导服务器配置为 9092。

    验证两个ip都可以访问

    bin/kafka-console-consumer.sh --topic test_kafka_cluster \
    --bootstrap-server 127.0.0.1:9092,127.0.0.2:9092 --from-beginning
    

    理想情况下,当我们运行两个 kafka 代理实例时,它将在两个不同的端口中运行。

    假设 Kafka 在本地运行 例如:本地主机:9092 本地主机:9093

    Kafka 实例在两个不同的主机上运行: 例如:127.0.0.3:9092、127.0.0.2:9092

    如果 Kafka 在 docker/docker 工具箱上运行:

    Docker 工具箱上的控制台消费者:

    docker exec <container-name> kafka-console-consumer --bootstrap-server 192.168.99.100:9093 --topic <topic-name> --from-beginning
    

    Docker 上的控制台消费者:

    docker exec <container-name> kafka-console-consumer --bootstrap-server localhost:9093 localhost 9092 --topic <topic-name> --from-beginning
    

    【讨论】:

      【解决方案2】:

      有两个参数会影响消费者的主题可用性:

      • min.insync.replicas (minISR):同步分区的最小副本数。
      • replication.factor (RF):分区的副本总数。

      如果您希望您的消费者在代理中断中幸存下来,那么您必须拥有RF &gt; minISRRF=2 and minISR=2 不能容忍任何代理宕机,RF=3 and minISR=2 可以容忍 1 个代理宕机,RF=5 and minISR=2 可以容忍 3 个代理宕机,依此类推。

      请注意,内部__consumer_offsets 主题用于存储消费者偏移量,默认 RF 值为 3,这在 2 个节点的集群中无法实现。所以你还需要在集群级别设置offsets.topic.replication.factor=1

      【讨论】:

      • 我的集群中只有两个broker,如果一个broker宕机,我应该怎么读取消费者的数据?
      • 我创建了一个这样的主题:bin/kafka-topics.sh --create --zookeeper xxx:2181 --replication-factor 2 --partitions 1 --topic test --config min .insync.replicas=1,那么它也不起作用。
      • 这是因为内部__consumer_offsets 不可用,因为其默认RF 为3。您还需要在您的情况下设置offsets.topic.replication.factor=1。答案已更新。
      猜你喜欢
      • 1970-01-01
      • 2021-07-09
      • 2023-03-20
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      • 1970-01-01
      相关资源
      最近更新 更多