Spring Kafka:凭证轮换

Spring Kafka: Credential Rotation

我们使用 Aiven 作为 Kafka 作为服务提供者,他们支持凭证轮换。例如。每 24 小时一次。

到目前为止,我们还没有找到在需要轮换时在 Spring Kafka 中创建新的消费者/生产者的方法。基本上,在 consumer.poll.

上抛出 TopicAuthorizationException

我们需要做的,基本上是创建一个具有更新信任库和密钥库路径的新消费者。 Keystore 和 truststore 是从 kubernetes secrets 加载的。

任何人都知道我们如何才能做到这一点?

侦听器容器将在任何 AuthorizationException 后停止。

您可以添加 ApplicationListener@EventListener 方法来接收 ListenerContainerStoppedEvent

您可以等待所有子容器停止,也可以立即停止并发容器;使用新的商店位置更新容器的 containerProperties.kafkaConsumerProperties 并重新启动容器。

我目前在生产者方面没有看到好的解决方案;您需要用商店位置的新覆盖替换生产者工厂 bean 或 KafkaTemplate(s)。

我会打开 an issue 以便在那里更容易。