【发布时间】:2021-05-16 01:02:51
【问题描述】:
我们有一个使用 spring kafka 来读取消息的应用程序。应用程序的每个实例都必须有一个唯一的 groupId,并重置它并在重新启动时获得一个新的。 GroupId 是通过${random.uuid} 随机生成的。
随机生成id的方案真的正确吗?
【问题讨论】:
标签: java spring-boot apache-kafka kafka-consumer-api spring-kafka
我们有一个使用 spring kafka 来读取消息的应用程序。应用程序的每个实例都必须有一个唯一的 groupId,并重置它并在重新启动时获得一个新的。 GroupId 是通过${random.uuid} 随机生成的。
随机生成id的方案真的正确吗?
【问题讨论】:
标签: java spring-boot apache-kafka kafka-consumer-api spring-kafka
是的,通过${random.uuid}生成是正确的。
spring.kafka.consumer.group-id=${random.uuid}
如果您想更好地控制组 ID 的生成方式,还有另一种选择。将 @KafkaListener 注释与 Spring 表达式一起使用。来自Spring Kafka reference:
您可以使用 #{...} 或属性占位符 (${...}) 使用 SpEL 配置注释上的大多数属性。请参阅Javadoc 了解更多信息。
@KafkaListener(topics = "hi", groupId = "#{T(java.util.UUID).randomUUID().toString()}")
【讨论】: