Syntax highlighting of 674cc35 ~( devops/kafka)
= Kafka = <<TableOfContents()>> == Ссылки == [[https://kafka.apache.org/]] | [[https://kafka.apache.org/quickstart | Quickstart ]] | [[https://kafka.apache.org/documentation/|Documentation]] [[https://docs.confluent.io/platform/current/kafka/authentication_ssl.html | Encrypt and Authenticate with TLS]] [[https://medium.com/lydtech-consulting/securing-kafka-with-mutual-tls-and-acls-b235a077f3e3 | Securing Kafka with Mutual TLS and ACLs]] == Установка и запуск == === Один сервер === Устанавливаем Java {{{#!highlight bash apt update apt install default-jre java -version }}} Скачиваем архив по ссылке [[ https://dlcdn.apache.org/kafka/ ]], например ''kafka_2.12-3.6.0.tgz'''. {{{#!highlight bash wget https://dlcdn.apache.org/kafka/3.6.0/kafka_2.12-3.6.0.tgz tar -zxvf kafka_2.12-3.6.0.tgz cp -r kafka_2.12-3.6.0 /usr/local/kafka cd /usr/local/kafka }}} Запускаем и проверяем {{{#!highlight bash # --- запускаем сервис zookeper bin/zookeeper-server-start.sh -daemon config/zookeeper.properties # --- запускаем сервис kafka bin/kafka-server-start.sh -daemon config/server.properties # --- запускаем консьюмера bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092 # ожидание сообщений... # --- запускаем продюсера (в другой консоле) bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092 >hello world # наблюдаем "hello world" в консьюмере }}} Остановка сервисов {{{#!highlight bash bin/kafka-server-stop.sh bin/zookeeper-server-stop.sh }}} === Несколько серверов === {{{#!wiki note ToDo }}} == TLS == Инструкции по генерации новых сертификатов для обмена по протоколу TLS можно легко найти в сети, например - [[https://medium.com/lydtech-consulting/securing-kafka-with-mutual-tls-and-acls-b235a077f3e3 | Securing Kafka with Mutual TLS and ACLs]]. Статья содержит подробное описание и ссылку на [[https://github.com/lydtechconsulting/kafka-mutual-tls|проект в github]]. В случае, если сертификаты сгенерированы ранее в формате PEM, то действия будут немного отличаться. Нам потребуется выполнить ряд действий по преобразования PEM в [[https://en.wikipedia.org/wiki/Java_KeyStore|JKS]]. {{{#!wiki note Согласно [[https://kafka.apache.org/documentation/#security_ssl_signing|документации]] Kafka умеет работать с PEM-сертификатами. Однако рабочие варианты использования данной возможности пока не найдены. Имеет смысл проработать этот вопрос в перспективе. }}} Входные данные - набор сертификатов: корневой, серверный и клиентский. Выходные жанные - хранилища в формате JKS: серверное, клиентское }}} == REST Proxy == {{{#!wiki note ToDo }}}
