【发布时间】:2021-06-05 17:34:20
【问题描述】:
在与我合作的公司,我们使用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 属性
设置 AuthorizationException 发生后的重试间隔 由 KafkaConsumer 抛出。默认情况下,该字段为空,重试次数为 禁用。在这种情况下,容器将被停止。间隔 必须小于 max.poll.interval.ms 消费者属性。
这里有一些其他有用的链接
Setting authorizationExceptionRetryInterval for Spring Kafka
Why does the spring KafkaConsumer suspend all consumption from n topics when one fails to authorize
我想知道的是:
- 是身份验证失败的唯一情况 消费者/生产者下降?
- 如果有其他情况,如何确保我们的 消费者/生产者无需人工干预即可恢复(重启 微服务)?换句话说,如何检查是否 消费者/生产者已经启动并重新启动它们?
【问题讨论】:
标签: spring-boot apache-kafka spring-kafka