本机是否支持kafka SSL连接?
我不想使用quarkus中的smallrye kafka通过SSL连接到kafka主题 我的代码在执行本机是否支持kafka SSL连接?,ssl,apache-kafka,quarkus,smallrye-reactive-messaging,Ssl,Apache Kafka,Quarkus,Smallrye Reactive Messaging,我不想使用quarkus中的smallrye kafka通过SSL连接到kafka主题 我的代码在执行mvn编译quarkus:dev时工作 mvn清洁包-Pnative成功。但当我运行本机二进制文件时,它会失败,因为它找不到SaslClientCallbackHandler。 我遵循quarkus指南使用SSL构建本机,并使用smallrye扩展配置kafka 我的application.property文件 mp.messaging.outgoing.stock-topic.connecto
mvn编译quarkus:dev
时工作
mvn清洁包-Pnative
成功。但当我运行本机二进制文件时,它会失败,因为它找不到SaslClientCallbackHandler
。
我遵循quarkus指南使用SSL构建本机,并使用smallrye扩展配置kafka
我的application.property文件
mp.messaging.outgoing.stock-topic.connector=smallrye-kafka
mp.messaging.outgoing.stock-topic.value.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
mp.messaging.outgoing.stock-topic.key.serializer=org.apache.kafka.common.serialization.IntegerSerializer
mp.messaging.outgoing.stock-topic.topic=topic
mp.messaging.outgoing.stock-topic.bootstrap.servers=${KAFKA_HOST}:${KAFKA_PORT}
mp.messaging.outgoing.stock-topic.sasl.mechanism=PLAIN
mp.messaging.outgoing.stock-topic.security.protocol=SASL_SSL
mp.messaging.outgoing.stock-topic.ssl.protocol=TLSv1.2
mp.messaging.outgoing.stock-topic.ssl.enabled.protocols=TLSv1.2
mp.messaging.outgoing.stock-topic.ssl.endpoint.identification.algorithm=HTTPS
mp.messaging.outgoing.stock-topic.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="${KAFKA_USER}" password="${KAFKA_PASS}";
quarkus.ssl.native=true
quarkus.native.enable-all-security-services=true
我希望本地人也能这样做。注释application.property
时,本机运行不会引发异常
错误日志:
线程“main”java.lang.RuntimeException中的异常:无法启动quarkus
在io.quarkus.runner.ApplicationImpl.doStart(ApplicationImpl.zig:185)
在io.quarkus.runtime.Application.start(Application.java:94)
在io.quarkus.runtime.Application.run(Application.java:218)
在io.quarkus.runner.GeneratedMain.main(GeneratedMain.zig:41)
原因:javax.enterprise.inject.spi.DeploymentException:org.apache.kafka.common.KafkaException:无法构造kafka生产者
位于io.quarkus.smallrye.reactiveMessagingLifecycle.runtime.smallryeractiveMessagingLifecycle.onApplicationStart(smallryeractiveMessagingLifecycle.java:22)
在io.quarkus.smallrye.reactivemessaging.runtime.SmallRyeReactiveMessagingLifecycle_Observer_on applicationstart_4e8937813d9e8faff65c3c07f88fa96615b70e70.notify(SmallRyeReactiveMessagingLifecycle_Observer_on applicationstart_4e8937813d9e8faff65c3c07f88fa96615b70e70.zig:51)
位于io.quarkus.arc.impl.EventImpl$Notifier.notify(EventImpl.java:224)
在io.quarkus.arc.impl.EventImpl.fire(EventImpl.java:65)
在io.quarkus.arc.runtime.LifecycleEventRunner.fireStartupEvent(LifecycleEventRunner.java:23)
在io.quarkus.arc.runtime.ArcRecorder.handleLifeCycleeEvents(ArcRecorder.java:108)上
在io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent27.deploy_0(LifecycleEventsBuildStep$startupEvent27.zig:58)
在io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent27.deploy(LifecycleEventsBuildStep$startupEvent27.zig:77)
在io.quarkus.runner.ApplicationImpl.doStart(ApplicationImpl.zig:161)
... 3个以上
原因:org.apache.kafka.common.KafkaException:无法构造kafka生产者
位于org.apache.kafka.clients.producer.KafkaProducer.(KafkaProducer.java:431)
位于org.apache.kafka.clients.producer.KafkaProducer.(KafkaProducer.java:271)
位于io.vertx.kafka.client.producer.impl.KafkaWriteStreamImpl.create(KafkaWriteStreamImpl.java:52)
位于io.vertx.kafka.client.producer.KafkaWriteStream.create(KafkaWriteStream.java:92)
位于io.smallrye.reactive.messaging.kafka.KafkaSink.(KafkaSink.java:50)
位于io.smallrye.reactive.messaging.kafka.KafkaConnector.getSubscriberBuilder(KafkaConnector.java:73)
位于io.smallrye.reactive.messaging.kafka.KafkaConnector\u ClientProxy.getSubscriberBuilder(KafkaConnector\u ClientProxy.zig:283)
位于io.smallrye.reactive.messaging.impl.ConfiguredChannel Factory.createSubscriberBuilder(ConfiguredChannel Factory.java:156)
位于io.smallrye.reactive.messaging.impl.ConfiguredChannel Factory.lambda$寄存器$5(ConfiguredChannel Factory.java:124)
位于java.util.HashMap.forEach(HashMap.java:1289)
位于io.smallrye.reactive.messaging.impl.ConfiguredChannel Factory.register(ConfiguredChannel Factory.java:124)
在io.smallrye.reactive.messaging.impl.ConfiguredChannelFactory.initialize(ConfiguredChannelFactory.java:118)
在io.smallrye.reactive.messaging.impl.ConfiguredChannel Factory\u ClientProxy.initialize(ConfiguredChannel Factory\u ClientProxy.zig:195)
位于java.util.Iterator.ForEachLeving(Iterator.java:116)
位于java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
位于java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:647)
位于io.smallrye.reactive.messaging.extension.MediatorManager.initializeAndRun(MediatorManager.java:132)
在io.smallrye.reactive.messaging.extension.MediatorManager\u ClientProxy.initializeAndRun(MediatorManager\u ClientProxy.zig:100)
在io.quarkus.smallrye.ReactiveMessagingLifecycle.runtime.SmallRyeReactiveMessagingLifecycle.onApplicationStart(SmallRyeReactiveMessagingLifecycle.java:20)上
... 还有11个
原因:org.apache.kafka.common.KafkaException:org.apache.kafka.common.KafkaException:找不到org.apache.kafka.common.security.authenticator.SaslClientCallbackHandler的公共无参数构造函数
位于org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:160)
位于org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:146)
位于org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:67)
位于org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:99)
位于org.apache.kafka.clients.producer.KafkaProducer.newSender(KafkaProducer.java:439)
位于org.apache.kafka.clients.producer.KafkaProducer.(KafkaProducer.java:420)
... 还有29个
原因:org.apache.kafka.common.KafkaException:找不到org.apache.kafka.common.security.authenticator.SaslClientCallbackHandler的公共无参数构造函数
位于org.apache.kafka.common.utils.utils.newInstance(utils.java:314)
位于org.apache.kafka.common.network.SaslChannelBuilder.createClientCallbackHandler(SaslChannelBuilder.java:289)
位于org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:127)
... 34多
原因:java.lang.NoSuchMethodException:org.apache.kafka.common.security.authenticator.SaslClientCallbackHandler。
位于java.lang.Class.getConstructor0(DynamicHub.java:3082)
位于java.lang.Class.getDeclaredConstructor(DynamicHub.java:2178)
在org.apache.kafka.common上。