gpt4 book ai didi

spring-boot - 在 Kafka 客户(消费者/生产者)宕机后恢复它们

转载 作者:行者123 更新时间:2023-12-02 18:52:57 25 4
gpt4 key购买 nike

在我工作的公司,我们使用 Spring for Kafka 没有身份验证,最近我们做了一些实验来设置 Kafka 的安全性,我们启用了短暂的身份验证,这导致我们所有的迷恋我们微服务中的消费者/生产者! (微服务保持正常)

异常:

Authorization Exception and no authorizationExceptionRetryInterval set

org.apache.kafka.common.errors.GroupAuthorizationException: Not authorized to access group: foo-group

经过一些研究,我们发现这是 kafka 客户端的预期行为,我们需要设置 authorizationExceptionRetryInterval 属性

public void setAuthorizationExceptionRetryInterval​(java.time.Duration authorizationExceptionRetryInterval)

Set the interval between retries after AuthorizationException isthrown by KafkaConsumer. By default the field is null and retries aredisabled. In such case the container will be stopped. The intervalmust be less than max.poll.interval.ms consumer property.

这是一些其他有用的链接

Setting authorizationExceptionRetryInterval for Spring Kafka

Why does the spring KafkaConsumer suspend all consumption from n topics when one fails to authorize

我想知道的是:

  1. 身份验证失败是唯一的情况吗消费者/生产者下降?
  2. 如果还有一些其他情况,如何确保我们的消费者/生产者无需人为干预即可恢复(重新启动微服务)?换句话说,如何检查消费者/生产者启动并重新启动它们?

最佳答案

容器仅在以下情况下停止:

  • AuthorizationException 没有 authorizationExceptionRetryInterval
  • NoOffsetForPartitionException - 当 ConsumerConfig.AUTO_OFFSET_RESET_CONFIG 不是 earliestlatest 并且没有现有偏移量时抛出与这个消费者群体的分区。
  • FencedInstanceIdException - 使用事务和静态组成员(意味着其他一些实例正在使用此实例 ID)。
  • StopAfterFenceException - 当 stopContainerWhenFenced 为真(默认为 false)时 - 仅适用于交易
  • 任何错误(例如 OOME)

关于spring-boot - 在 Kafka 客户(消费者/生产者)宕机后恢复它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66519618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com