Свойства клиента Kafka производителя / потребителя Java, необходимые при доступе к брокерам / кластеру Kafka, защищенным SSL-Auth?

Когда мы подключаемся к Kafka cluster / kafka, в java-клиентах мы определяем определенные свойства -
Пример Свойства производителя

 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");

Пример Потребительские свойства -

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");

Аналогичным образом, следует ли упоминать здесь какие-либо свойства (например, хранилище ключей, путь к хранилищу доверенных сертификатов и т. д.), связанные с SSL-Auth, при подключении к кластеру Kafka, защищенному с помощью SSL-Auth.
Может ли кто-нибудь уточнить и объяснить как клиент Java может подключиться к защищенному кластеру Kafka.

Ссылка - Вышеупомянутые реквизиты взяты из документации Kafka - производитель кафки / потребитель кафки




Ответы (1)


В документации 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
person Mickael Maison    schedule 09.07.2020
comment
итак, такие вещи, как - props.setProperty("ssl.keystore.location", "var/private/ssl/client.keystore.jks"); и т. д. - person samshers; 09.07.2020
comment
Да, настройте эту конфигурацию на своем объекте Properties / Map, используемом для создания клиента Kafka. ssl.key.password - это пароль закрытого ключа в файле хранилища ключей, это необязательно, если вы не установили пароль для ключа. - person Mickael Maison; 09.07.2020