访问 SSL-Auth 保护的 Kafka 代理/集群时需要 Java 生产者/消费者 kafka 客户端属性吗?

sam*_*ers 5 ssl-certificate apache-kafka kafka-consumer-api kafka-producer-api apache-kafka-security

当我们连接到 Kafka 集群/kafka 时,在 java 客户端中我们定义某些属性 -
示例Producer 属性

 Properties props = new Properties();
 props.put("bootstrap.servers", "localhost:9092");
 props.put("acks", "all");
 props.put("retries", 0);
 props.put("batch.size", 16384);
 props.put("linger.ms", 1);
 props.put("buffer.memory", 33554432);
 props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
 props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
Run Code Online (Sandbox Code Playgroud)

消费者属性示例-

Properties props = new Properties();
props.setProperty("bootstrap.servers", "localhost:9092");
props.setProperty("group.id", "test");
props.setProperty("enable.auto.commit", "true");
props.setProperty("auto.commit.interval.ms", "1000");
props.setProperty("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.setProperty("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
Run Code Online (Sandbox Code Playgroud)

同样,当连接到使用 SSL-Auth 保护的 Kafka 集群时,是否应在此处提及与 SSL-Auth 相关的任何属性(如密钥库和信任库路径等)。
有人可以详细说明并解释 Java 客户端如何连接到安全的 Kafka 集群吗?

参考 - 以上道具取自 Kafka 文档 - kafka 生产者/ kafka 消费者

Mic*_*son 5

Kafka 文档中有一个部分详细介绍了如何配置 SSL 身份验证: http: //kafka.apache.org/documentation/#security_ssl

配置 Kafka 客户端部分中,列出了所需的设置:

# For SSL
security.protocol=SSL
ssl.truststore.location=/var/private/ssl/client.truststore.jks
ssl.truststore.password=test1234

# For SSL auth
ssl.keystore.location=/var/private/ssl/client.keystore.jks
ssl.keystore.password=test1234
ssl.key.password=test1234
Run Code Online (Sandbox Code Playgroud)