Apache kafka 你喜欢Quarkus&;微文件支持合流模式注册表Avro模式?

Apache kafka 你喜欢Quarkus&;微文件支持合流模式注册表Avro模式?,apache-kafka,confluent-schema-registry,quarkus,microprofile,smallrye-reactive-messaging,Apache Kafka,Confluent Schema Registry,Quarkus,Microprofile,Smallrye Reactive Messaging,合流模式注册表不使用Quarkus和MicroporFile 以下面的错误结束 ***********ERROR Caused by: io.confluent.common.config.ConfigException: Missing required configuration "schema.registry.url" which has no default value. 我尝试构建Quarkus kafka使用者应用程序,该应用程序必须反序列化kafka主题中可用的a

合流模式注册表不使用Quarkus和MicroporFile

以下面的错误结束

***********ERROR    
Caused by: io.confluent.common.config.ConfigException: Missing required    configuration "schema.registry.url" which has no default value.
我尝试构建Quarkus kafka使用者应用程序,该应用程序必须反序列化kafka主题中可用的avro序列化程序消息。当我尝试如下配置架构注册表(Confluent`s)以使用avro反序列化kafka消息时,我遇到异常

配置

schema.registry.url=http://kafka-exposed:8081

kafka.bootstrap.servers=kafka-exposed:9200

# Configure the Kafka source (we read from it) 
mp.messaging.incoming.test-quarkustest.group.id=demo

mp.messaging.incoming.test-quarkustest.connector=smallrye-kafka

mp.messaging.incoming.test-quarkustest.topic=kafkacollectioncomplex

mp.messaging.incoming.test-quarkustest.value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer

mp.messaging.incoming.test-quarkustest.value.value.converter=io.confluent.connect.avro.AvroConverter

mp.messaging.incoming.test-
mp.messaging.incoming.test-quarkustest.value.converter.schemas.enable=true
我也试过了

mp.messaging.incoming.test-quarkustest.value.converter.schema.registry.url=http://kafka-exposed:8081
mp.messaging.incoming.test-quarkustest.value.converter.schema.registry.url=http://kafka-exposed:8081
@ApplicationScoped
公共类ReadKafkaTopic{
@传入(“测试quarkustest”)
public CompletionStage进程(KafkaMessage消息){
JsonObject data=message.getPayload();
JsonArray数组=(JsonArray)data.getJsonArray(“技能”);
返回message.ack();
}
}
性质

schema.registry.url=http://kafka-exposed:8081`
kafka.bootstrap.servers=kafka-exposed:9200`

# Configure the Kafka source (we read from it) 
mp.messaging.incoming.test-quarkustest.group.id=demo`
mp.messaging.incoming.test-quarkustest.connector=smallrye-kafka`
mp.messaging.incoming.test-quarkustest.topic=kafkacollectioncomplex`
mp.messaging.incoming.test-quarkustest.value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer`
mp.messaging.incoming.test-quarkustest.value.value.converter=io.confluent.connect.avro.AvroConverter`
mp.messaging.incoming.test-quarkustest.value.converter.schemas.enable=true`
我也试过了

**********错误
原因:io.confluent.common.config.ConfigException:缺少没有默认值的必需配置“schema.registry.url”。
错误***********************
2019-10-27 19:08:11974错误[io.sma.rea.mes.imp.ConfiguredChannel Factory](主)无法在初始化期间创建发布服务器或订阅服务器:org.apache.kafka.common.KafkaException:无法构造kafka使用者
76位于org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:811)
77位于org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:624)
78位于org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:605)
79位于io.vertx.kafka.client.consumer.KafkaReadStream.create(KafkaReadStream.java:100)
80位于io.vertx.kafka.client.consumer.KafkaConsumer.create(KafkaConsumer.java:74)
81位于io.vertx.reactivex.kafka.client.consumer.KafkaConsumer.create(KafkaConsumer.java:168)
82 at io.smallrye.reactive.messaging.kafka.KafkaSource.(KafkaSource.java:51)
83位于io.smallrye.reactive.messaging.kafka.KafkaConnector.getPublisherBuilder(KafkaConnector.java:65)
84位于io.smallrye.reactive.messaging.kafka.KafkaConnector\u ClientProxy.getPublisherBuilder(KafkaConnector\u ClientProxy.zig:203)
85位于io.smallrye.reactive.messaging.impl.ConfiguredChannel Factory.createPublisherBuilder(ConfiguredChannel Factory.java:145)
86位于io.smallrye.reactive.messaging.impl.ConfiguredChannel Factory.lambda$寄存器$4(ConfiguredChannel Factory.java:123)
87位于java.util.HashMap.forEach(HashMap.java:1289)
88位于io.smallrye.reactive.messaging.impl.ConfiguredChannel Factory.register(ConfiguredChannel Factory.java:123)
89位于io.smallrye.reactive.messaging.impl.ConfiguredChannel Factory.initialize(ConfiguredChannel Factory.java:118)
90在io.smallrye.reactive.messaging.impl.ConfiguredChannel Factory\u ClientProxy.initialize(ConfiguredChannel Factory\u ClientProxy.zig:195)
91位于java.util.Iterator.ForEachLeving(Iterator.java:116)
92位于java.util.Spliterators$IteratorSpliterator.ForEachLeving(Spliterators.java:1801)
93位于java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
94位于io.smallrye.reactive.messaging.extension.MediatorManager.initializeAndRun(MediatorManager.java:132)
95 at io.smallrye.reactive.messaging.extension.MediatorManager\u ClientProxy.initializeAndRun(MediatorManager\u ClientProxy.zig:100)
96位于io.quarkus.smallrye.reactiveMessagingLifecycle.runtime.SmallRyeReactiveMessagingLifecycle.onApplicationStart(SmallRyeReactiveMessagingLifecycle.java:20)
97在io.quarkus.smallrye.reactivemessaging.runtime.SmallRyeReactiveMessagingLifecycle_Observer_onApplicationStart_4e8937813d9e8faff65c3c07f88fa96615b70e70.notify(SmallRyeReactiveMessagingLifecycle_onApplicationStart_4e8937813d9e8faff65c3c07f88fa96615b70e70.zig:51)
98位于io.quarkus.arc.EventImpl$Notifier.notify(EventImpl.java:228)
99 at io.quarkus.arc.EventImpl.fire(EventImpl.java:69)
100在io.quarkus.arc.runtime.LifecycleEventRunner.fireStartupEvent(LifecycleEventRunner.java:23)
101在io.quarkus.arc.runtime.ArcRecorder.handleLifeCycleeEvents(ArcRecorder.java:103)上
102位于io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent32.deploy_0(LifecycleEventsBuildStep$startupEvent32.zig:77)
103在io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent32.deploy(LifecycleEventsBuildStep$startupEvent32.zig:36)
104在io.quarkus.runner.ApplicationImpl1.doStart(ApplicationImpl1.zig:161)
105位于io.quarkus.runtime.Application.start(Application.java:94)
106位于io.quarkus.runtime.Application.run(Application.java:218)
107在io.quarkus.runner.GeneratedMain.main(GeneratedMain.zig:41)
108原因:io.confluent.common.config.ConfigException:缺少没有默认值的必需配置“schema.registry.url”。
109位于io.confluent.common.config.ConfigDef.parse(ConfigDef.java:251)
110位于io.confluent.common.config.AbstractConfig。(AbstractConfig.java:78)
111位于io.confluent.kafka.serializers.AbstractKafkaAvroSerDeConfig。(AbstractKafkaAvroSerDeConfig.java:105)
112位于io.confluent.kafka.serializers.kafkavrodeserializerconfig.(kafkavrodeserializerconfig.java:41)
113位于io.confluent.kafka.serializers.kafkavrodeserializer.configure(kafkavrodeserializer.java:50)
114位于org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:713)
115     ... 还有31个
给定格式

mp.messaging.[outgoing|incoming].[channel-name].[attribute]=[value] 
和属性
schema.registry.url
,您需要以下内容

mp.messaging.incoming.test-quarkustest.connector=smallrye-kafka
mp.messaging.incoming.test-quarkustest.connector=kafkacollectioncomplex
mp.messaging.incoming.test-quarkustest.bootstrap.servers=localhost:9092

# Setup Avro
mp.messaging.incoming.test-quarkustest.value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer
mp.messaging.incoming.test-quarkustest.schema.registry.url=http://localhost:8081
在创建新消费者之前,它将在内部调用
kafkanconfiguration.put(属性,值)



在任何情况下,
JsonObject
听起来都不是Avro子类,因此您也必须首先更改应用程序代码,
value.converter
,它的子属性不是消费者属性,所以我不确定您为什么要尝试它。类似地,
value.converter.schemas.enable
对Avro没有任何作用,因为它总是有一个架构,但又不是消费者属性。我尝试了建议的更改,但仍然面临相同的问题(原因是:io.confluent.common.confi)
mp.messaging.[outgoing|incoming].[channel-name].[attribute]=[value] 
mp.messaging.incoming.test-quarkustest.connector=smallrye-kafka
mp.messaging.incoming.test-quarkustest.connector=kafkacollectioncomplex
mp.messaging.incoming.test-quarkustest.bootstrap.servers=localhost:9092

# Setup Avro
mp.messaging.incoming.test-quarkustest.value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer
mp.messaging.incoming.test-quarkustest.schema.registry.url=http://localhost:8081