【问题标题】:Kafka Channel name with a 'period' in Quarkus applicationQuarkus 应用程序中带有“句点”的 Kafka 通道名称
【发布时间】:2023-01-03 06:39:39
【问题描述】:

当我在玩 repo kafka-quickstart 时,我注意到如果我在频道名称中添加句点,quarkus 将无法启动。 github repo 中的频道名称是“quotes”,我将其更改为“quotes.ch”。

属性文件条目更改为
mp.messaging.outgoing.报价.ch.value.serializer=io.quarkus.kafka.client.serialization.ObjectMapperSerializer
QuotesProcessor 中带有通道名称“quotes.ch”的传出注释 以及 QuotesResource 中带有“quotes.ch”的频道注释

处理器应用程序无法启动并出现以下异常 :: 如何在 quarkus 中处理此类名称?

线程 [39m [38;5;188m) [39m [38;5;151m无法启动应用程序(使用配置文件开发)[39m [38;5;203m: java.lang.IllegalArgumentException: SRMSG00071:频道配置无效 - 必须为频道 quotes 设置 connector 属性在 io.smallrye.reactive.messaging.providers.impl.ConnectorConfig.lambda$new$0(ConnectorConfig.java:50) 在 java.base/java.util.Optional.orElseThrow(Optional.java:403) 在 io.smallrye.reactive.messaging.providers.impl.ConnectorConfig.lambda$new$1(ConnectorConfig.java:50) 在 java.base/java.util.Optional.orElseGet(Optional.java:364) 在 io.smallrye.reactive.messaging.providers.impl.ConnectorConfig.(ConnectorConfig.java:49) 在 io.smallrye.reactive.messaging.providers.impl.ConfiguredChannelFactory.lambda$extractConfigurationFor$0(ConfiguredChannelFactory.java:85) 在 java.base/java.lang.Iterable.forEach(Ite​​rable.java:75) 在 io.smallrye.reactive.messaging.providers.impl.ConfiguredChannelFactory.extractConfigurationFor(ConfiguredChannelFactory.java:74)

更新:::此问题/错误已在https://github.com/quarkusio/quarkus/pull/25490 中修复

【问题讨论】:

  • 您可以尝试在频道名称周围添加引号吗? (我知道这里有太多的“引号”……:-))像这样:mp.messaging.outgoing."quotes.ch".value.serializer=io.quarkus.kafka.client.serialization.ObjectMapperSerializer
  • @Ladicek:我试过“quotes.ch”和“quotes.ch”但面临同样的问题。频道配置无效 - 必须为频道 quotes 设置 connector 属性
  • @Ladicek:我添加了连接器属性 mp.messaging.outgoing."quotes.ch".connector=smallrye-kafka 没有解决问题
  • 好的,那可能是一个错误。 SmallRye Reactive Messaging 确实对配置属性进行了相当多的操作,并且可能不支持引用语法。我建议在 SmallRye Reactive Messaging (github.com/smallrye/smallrye-reactive-messaging) 或 Quarkus 中提出问题。
  • 是的,听起来像是 quarkus 集成中的错误。我们对“纯”smallrye 进行了测试。

标签: java quarkus smallrye quarkus-kafka


【解决方案1】:

你需要像这样更新你的 application.properties

# Configurazione incoming quotes Kafka topic for Channel
mp.messaging.incoming.quotes.connector=smallrye-kafka
mp.messaging.incoming.quotes.topic=quotes
mp.messaging.incoming.quotes.auto.offset.reset=earliest

正确配置kafka后你可以使用

@Channel("quotes")...

官方文档: 有关您的用例的更多信息,请点击此处https://quarkus.io/guides/kafka-reactive-getting-started 和这里的其他例子https://quarkus.io/blog/getting-started-kafka/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多