为 Kafka 消费者随机生成的组 ID

Randomly generated group id for Kafka Consumer

我们有一个应用程序使用 spring kafka 来读取消息。应用程序的每个实例都必须有一个唯一的 groupId,并且重置它并在重新启动时获得一个新的。 GroupId 是通过 ${random.uuid}.

随机生成的

随机生成id的方案真的正确吗?

是的,通过${random.uuid}生成是正确的。

spring.kafka.consumer.group-id=${random.uuid}

如果您希望更好地控制组 ID 的生成方式,还有另一种选择。使用带有 Spring 表达式的 @KafkaListener 注释。来自 Spring Kafka reference:

You can configure most attributes on the annotation with SpEL by using #{…​} or property placeholders (${…​}). See the Javadoc for more information.

@KafkaListener(topics = "hi", groupId = "#{T(java.util.UUID).randomUUID().toString()}")