Для тех, кто хочет "пощупать" Kafka изнутри

Простая установка Kafka через Docker 🔧 Шаг 1. Установка Kafka 1. Установить Docker Desktop 2. Скачайте репозиторий Zerocode: Использовала https://github.com/authorjapps/zerocode 3. Откройте скачанный репозиторий и найти папку docker\compose 4. В этой папке откройте CMD и выполните команду: bash docker-compose -f kafka-schema-registry.yml up -d ✅ Таким образом запускается Kafka со всеми компонентами: Zookeeper, Kafka Broker, Schema Registry, REST Proxy, KSQL DB. 5.Проверить результат docker ps

Шаг 2. Настройка Kafka UI (веб-интерфейс) Чтобы было удобнее работать, добавим красивый веб-интерфейс. 1. В папке docker\compose отредактировать файл kafka-schema-registry.yml и добавьте в конец секции services: новый сервис:

kafka-ui:     image: provectuslabs/kafka-ui:latest     container_name: kafka-ui     ports:       - “8080:8080”     environment:       KAFKA_CLUSTERS_0_NAME: local-kafka       KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:29092       KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181       KAFKA_CLUSTERS_0_SCHEMAREGISTRY: http://schema-registry:8081       KAFKA_CLUSTERS_0_KSQLDBSERVER: http://ksqldb-server:8088       DYNAMIC_CONFIG_ENABLED: “true”     depends_on:       - kafka       - schema-registry     restart: unless-stopped

Мой файл kafka-schema-registry.yml — во вложении к посту!

2. Перезапустить контейнеры: bash: docker-compose -f kafka-schema-registry.yml down docker-compose -f kafka-schema-registry.yml up -d

3. Открыть в браузере: http://localhost:8080 4. В настройках Kafka UI укажите: Cluster name: local-kafka Bootstrap Servers: kafka:29092 Schema Registry: http://schema-registry:8081 KSQL DB: http://ksqldb-server:8088 Готово! 🎉 Теперь у вас полноценная Kafka локально с удобным веб-интерфейсом.

Что поделать в Kafka: Создать топик с партициями bash docker exec compose-kafka-1 kafka-topics --create --topic orders --partitions 3 --replication-factor 1 --bootstrap-server kafka:29092 Отправка сообщения:  bash: docker exec -it compose-kafka-1 kafka-console-producer --topic orders --bootstrap-server localhost:9092 После запуска команды появится мигающий курсор — вот там можно вводить сообщения. Каждое нажатие Enter отправляет одно сообщение. > {“id”: 1, “product”: “iPhone”, “price”: 1000} Получить сообщения (Consumer) bash: docker exec -it compose-kafka-1 kafka-console-consumer --topic orders --from-beginning --bootstrap-server kafka:29092 Отправка сообщения в топик с ключом:  bash: docker exec -it compose-kafka-1 kafka-console-producer --topic orders --property “parse.key=true” --property “key.separator=:” --bootstrap-server localhost:9092 Вводите в формате ключ:значение: user1:{“id”:1,“product”:“iphone”} user2:{“id”:4,“product”:“iphone”} Consumers с ключами и партициями exec -it compose-kafka-1 kafka-console-consumer --topic my-topic --from-beginning --property print.key=true --property print.partition=true --bootstrap-server kafka:29092 https://docs.google.com/document/d/1cJk36UmHoHWt4PM5oL1hI8XfdMpOroLn25uxP72KxuQ/edit?usp=sharing