1

编写了一个程序,使用 smallrye-kafka-messaging 读取 kafka 主题。现在我需要 group.id 属性在服务运行/重新启动时是随机的,所以我在 quarkus 项目中使用了这个属性

mp.messaging.incoming.incoming_topic_name.group.id=${quarkus.uuid}

${quarkus.uuid}在 quarkus 指南中提到用于在 application.properties 中生成随机 uuid

但是当在应用程序中使用此属性时,会出现此异常

Failed to start application (with profile dev): java.util.NoSuchElementException: SRCFG00011: Could not expand value quarkus.uuid in property mp.messaging.incoming.incoming.incoming_topic_name.group.id
        at io.smallrye.config.ExpressionConfigSourceInterceptor.lambda$getValue$0(ExpressionConfigSourceInterceptor.java:44)
        at io.smallrye.common.expression.ExpressionNode.emit(ExpressionNode.java:22)
        at io.smallrye.common.expression.Expression.evaluateException(Expression.java:56)
        at io.smallrye.common.expression.Expression.evaluate(Expression.java:70)
        at io.smallrye.config.ExpressionConfigSourceInterceptor.getValue(ExpressionConfigSourceInterceptor.java:37)
        at io.smallrye.config.ExpressionConfigSourceInterceptor.getValue(ExpressionConfigSourceInterceptor.java:18)

也试过这个 - 删除了 group.id 属性,所以 kafka 使用quarkus.application.name作为消费者组 ID,所以即使在删除应用程序名称属性之后,quarkus 也使用服务名称作为消费者组 ID。

还有其他方法可以将 kafka 侦听器的 group.id 设置为随机吗?

4

1 回答 1

1

正如@geoand 在评论中提到的,在将 Quarkus 版本更新到 2.2.3 之后,它现在终于可以正常工作了。该问题是由于使用了旧版本的 Quarkus,更新版本后问题得到解决。

于 2021-09-20T13:22:33.960 回答