![](/img/trans.png)
[英]Kafka AdminClient error when connecting using SASL_SSL / PLAIN
[英]Kafka SASL_SSL Authentication error, how authenticate?
我在 Java 工作,使用一條從 Kafka 集群消耗數據的管道,它可以在
根據存儲庫, props
和pipeline
被定義為:
Map<String, Object> props = new HashMap<>();
props.put("auto.offset.reset", "earliest");
props.put("ssl.endpoint.identification.algorithm", "https");
props.put("sasl.mechanism", "PLAIN");
props.put("request.timeout.ms", 20000);
props.put("retry.backoff.ms", 500);
props.put("security.protocol", "SASL_SSL");
props.put("sasl.jaas.config",String.format("org.apache.kafka.common.security.
plain.PlainLoginModule required username=\"%s\" password=\"%s\";",username, password));
LogKafkaMsg logKafkaMsg = new LogKafkaMsg();
Pipeline pipeline = Pipeline.create(options);
PCollection<KV<String, String>> entries =
pipeline
.apply(
"Read Entries from Confluent Cloud Topic",
KafkaIO.<String, String>read()
.withBootstrapServers("<your-bootstrap-server>")
.withTopic("entries")
.withConsumerConfigUpdates(props)
.withKeyDeserializer(StringDeserializer.class)
.withValueDeserializer(StringDeserializer.class)
.withoutMetadata()
);
我的問題是執行代碼時,返回以下錯誤:
at org.apache.beam.runners.dataflow.DataflowRunner.run(DataflowRunner.java:969)
at org.apache.beam.runners.dataflow.DataflowRunner.run(DataflowRunner.java:198)
at org.apache.beam.sdk.Pipeline.run(Pipeline.java:322)
at org.apache.beam.sdk.Pipeline.run(Pipeline.java:308)
at com.ecuevas.DataflowPipeline.main(DataflowPipeline.java:214)
Caused by: org.apache.kafka.common.errors.SaslAuthenticationException: Invalid SASL/PLAIN response: expected 3 tokens, got 4
問題可能與 SASL/PLAIN 身份驗證有關,但我不知道可能的解決方案。 我認為這與以下方面有關:
ca-cert
、 ca-key
、 ca-password
或其他特殊的。似乎 Dataflow 虛擬機未通過身份驗證以連接到 Kafka 集群。 您是否嘗試過按照此處的說明使用密鑰庫證書文件進行身份驗證?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.