Это мой первый пост в Stackoverflow, надеюсь, я выбрал не тот раздел.
Контекст:
Размер KAPKA HEAP настроен для следующего файла:
/etc/systemd/system/kafka.service
Со следующим параметром:
Environment="KAFKA_HEAP_OPTS=-Xms6g -Xmx6g"
ОС - "CentOS Linux выпуск 7.7.1908" .
Кафка - "confluent-kafka-2.12-5.3.1-1.noarch ", установлен из следующего репозитория:
# Confluent REPO
[Confluent.dist]
name=Confluent repository (dist)
baseurl=http://packages.confluent.io/rpm/5.3/7
gpgcheck=1
gpgkey=http://packages.confluent.io/rpm/5.3/archive.key
enabled=1
[Confluent]
name=Confluent repository
baseurl=http://packages.confluent.io/rpm/5.3
gpgcheck=1
gpgkey=http://packages.confluent.io/rpm/5.3/archive.key
enabled=1
Я активировал SSL на кластере KAFKA из 3 компьютеров несколько дней назад, и неожиданно перестала работать следующая команда:
kafka-topics --bootstrap-server <the.fqdn.of.server>:9093 --describe --topic <TOPIC-NAME>
, которые возвращают мне следующую ошибку:
[2019-10-03 11:38:52,790] ERROR Uncaught exception in thread 'kafka-admin-client-thread | adminclient-1':(org.apache.kafka.common.utils.KafkaThread)
java.lang.OutOfMemoryError: Java heap space
at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
at java.nio.ByteBuffer.allocate(ByteBuffer.java:335)
at org.apache.kafka.common.memory.MemoryPool$1.tryAllocate(MemoryPool.java:30)
at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:112)
at org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:424)
at org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:385)
at org.apache.kafka.common.network.Selector.attemptRead(Selector.java:651)
at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:572)
at org.apache.kafka.common.network.Selector.poll(Selector.java:483)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:539)
at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.run(KafkaAdminClient.java:1152)
at java.lang.Thread.run(Thread.java:748)
В журнале сервера появляется следующая строка, когда я пытаюсь запросить его через "kafka-themes":
/var/log/kafka/server.log :
[2019-10-03 11:41:11,913] INFO [SocketServer brokerId=<ID>] Failed authentication with /<ip.of.the.server> (SSL handshake failed) (org.apache.kafka.common.network.Selector)
Мне удалось правильно использовать эту команду ДО внедрения SSL в кластере. Вот конфигурация, которую я использую. Все функции работают должным образом (потребители, производители ...), кроме "kafka-themes":
# SSL Configuration
ssl.truststore.location=<truststore-path>
ssl.truststore.password=<truststore-password>
ssl.keystore.type=<keystore-type>
ssl.keystore.location=<keystore-path>
ssl.keystore.password=<keystore-password>
# Enable SSL between brokers
security.inter.broker.protocol=SSL
# Listeners
listeners=SSL://<fqdn.of.the.server>:9093
advertised.listeners=SSL://<fqdn.of.the.server>:9093
Нет проблем с сертификатом (который подписан внутренним CA, внутренним CA, который я добавил всклад доверенных сертификатов указан в конфигурации). OpenSSL не показывает ошибок:
openssl s_client -connect <fqdn.of.the.server>:9093 -tls1
>> Verify return code: 0 (ok)
Следующая команда очень хорошо работает с SSL, благодаря параметру "-consumer.config client-ssl.properties"
kafka-console-consumer --bootstrap-server <fqdn.of.the.server>:9093 --topic <TOPIC-NAME> -consumer.config client-ssl.properties
"client-ssl.properties "content is:
security.protocol=SSL
ssl.truststore.location=<truststore-path>
ssl.truststore.password=<truststore-password>
Сейчас я вынужден использовать" --zookeeper ", который, согласно документации, устарел:
--zookeeper <String: hosts> DEPRECATED, The connection string for
the zookeeper connection in the form
host:port. Multiple hosts can be
given to allow fail-over.
Иконечно, он работает довольно хорошо:
kafka-topics --zookeeper <fqdn.of.the.server>:2181 --describe --topic <TOPIC-NAME>
Topic:<TOPIC-NAME> PartitionCount:3 ReplicationFactor:2
Configs:
Topic: <TOPIC-NAME> Partition: 0 Leader: <ID-3> Replicas: <ID-3>,<ID-1> Tsr: <ID-1>,<ID-3>
Topic: <TOPIC-NAME> Partition: 1 Leader: <ID-1> Replicas: <ID-1>,<ID-2> Isr: <ID-2>,<ID-1>
Topic: <TOPIC-NAME> Partition: 2 Leader: <ID-2> Replicas: <ID-2>,<ID-3> Isr: <ID-2>,<ID-3>
Итак, мой вопрос: почему я не могу использовать "--bootstrap-server" банкомат? Из-за устаревшего "zookeeper" я беспокоюсь, что не смогу проконсультироваться с моими темами и их деталями ...
Я считаю, что для kafka-themes нужна та же опция, что и для kafka-console-consumer, aka "-consumer.config" ...
Спросите, нужна ли какая-либо дополнительная точность.
Спасибо большое, надеюсь, мой вопрос понятен и читабелен.
Блыын