Kafka

Ссылки

https://kafka.apache.org/ | Quickstart | Documentation

Encrypt and Authenticate with TLS

Securing Kafka with Mutual TLS and ACLs

Установка и запуск

Один сервер

Устанавливаем Java

apt update
apt install default-jre
java -version

Скачиваем архив по ссылке https://dlcdn.apache.org/kafka/, например kafka_2.12-3.6.0.tgz.

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

Запускаем и проверяем

# --- запускаем сервис 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" в консьюмере

Остановка сервисов

bin/kafka-server-stop.sh
bin/zookeeper-server-stop.sh

Несколько серверов

ToDo

TLS

Инструкции по генерации новых сертификатов для обмена по протоколу TLS можно легко найти в сети, например - Securing Kafka with Mutual TLS and ACLs. Статья содержит подробное описание и ссылку на проект в github.

В случае, если сертификаты сгенерированы ранее в формате PEM, то действия будут немного отличаться. Нам потребуется выполнить ряд действий по преобразования PEM в JKS.

Согласно документации Kafka умеет работать с PEM-сертификатами. Однако рабочие варианты использования данной возможности пока не найдены. Имеет смысл проработать этот вопрос в перспективе.

Входные данные - набор сертификатов: корневой, серверный и клиентский. Выходные жанные - хранилища в формате JKS: серверное, клиентское

}}}

REST Proxy

ToDo