Search
Write a publication
Pull to refresh

Установка RabbitMQ и Kafka через Docker

Level of difficultyEasy
Reading time3 min
Views1.3K

RabbitMQ и Kafka — два популярных инструмента для обмена сообщениями в распределённых системах. Но их установка и настройка может занять часы. В этой статье мы поднимем оба брокера за считанные минуты с помощью Docker, разберём основные параметры и проверим, что всё работает.

В этой инструкции вы узнаете:

  • как развернуть RabbitMQ и Kafka в Docker за несколько минут;

  • какие параметры конфигурации нужны для базовой работы;

  • как проверить запуск и обмен сообщениями.

docker compose up -d

…и через пару минут у вас работают RabbitMQ и Kafka, готовые к тестам.

Поехали разбирать всё пошагово.

📦 Что тебе нужно

- Установленный Docker Desktop (Можно взять по ссылке https://www.docker.com/products/docker-desktop)
- Любой текстовый редактор (например, VS Code или Notepad++)
- Терминал (cmd, PowerShell, Terminal, Bash)

🐰 Установка RabbitMQ

1. Запусти команду в терминале:
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=myuser -e RABBITMQ_DEFAULT_PASS=mypassword rabbitmq:3-management

Разберем каждую часть команды:

  • docker run — запускает новый контейнер из указанного образа.

  • -ddetached mode (отключённый режим).
    Контейнер запускается в фоне, и терминал не блокируется. Можно продолжать работать в командной строке.

  • --name rabbitmq — даёт контейнеру имя rabbitmq.
    Это удобно, чтобы потом ссылаться на контейнер по имени, а не по ID.

  • -p 5672:5672 — проброс порта из контейнера на хост.
    Формат: <хостовой порт>:<порт внутри контейнера>.
    Здесь порт 5672 (стандартный AMQP-порт RabbitMQ) внутри контейнера доступен на порту 5672 на хосте.

  • -p 15672:15672 — проброс порта для веб-интерфейса RabbitMQ Management (порт 15672).

  • rabbitmq:3-management — имя образа и тег версии.
    Здесь rabbitmq — имя образа, 3-management — тег (версия с включённым Management Plugin, то есть с веб-интерфейсом).

  • -e RABBITMQ_DEFAULT_USER=myuser — задаёт имя пользователя.

  • -e RABBITMQ_DEFAULT_PASS=mypassword — задаёт пароль.

    После запуска с такими параметрами в веб-интерфейсе и в подключениях будет использоваться именно этот логин и пароль.

    При этом пользователь guest будет работать. Но только внутри сети (начиная с версии RabbitMQ 3.3.0), снаружи не получится под ним подключаться.

2. Открой веб-интерфейс: http://localhost:15672 или http://<IP_хоста>:15672.

3. Логин и пароль по умолчанию:guest/guest.Но лучше подключаться под своим пользователем, которого указали в команде с настройкой -e.

☕ Установка Kafka и Kafka UI

1. Создай файл docker-compose.yml со следующим содержимым

Коротко о файле:

  • zookeeper — запускает ZooKeeper на 2181.

  • kafka — запускает Kafka, который зависит от ZooKeeper.

  • kafka-ui — веб-интерфейс для управления и мониторинга Kafka на порту 8080.

version: '3'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:7.6.0
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
    ports:
      - "2181:2181"

  kafka:
    image: confluentinc/cp-kafka:7.6.0
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092  # для работы внутри Docker
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

  kafka-ui:
    image: provectuslabs/kafka-ui
    ports:
      - "8080:8080"
    depends_on:
      - kafka
    environment:
      - KAFKA_CLUSTERS_0_NAME=local
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092

2. Запусти в терминале из папки с файлом:

docker-compose up -d

3. Открой Kafka UI: http://localhost:8080 - это Kafka UI, где можно смотреть топики, сообщения, брокеров.

✅ Команды для управления контейнерами

Действие

Команда

Посмотреть запущенные

docker ps

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

docker stop <имя>

Удалить контейнер

docker rm <имя>

Перезапустить все

docker-compose up -d

Остановить все

docker-compose down

Мы развернули RabbitMQ и Kafka в Docker, настроили их для базовой работы и проверили, что всё готово к использованию. Такой подход позволяет быстро поднимать окружение для тестов или обучения, не тратя время на сложную установку.

Дальше можно углубиться: подключить продвинутую конфигурацию, добавить мониторинг, или построить полноценный pipeline с использованием брокеров.

Tags:
Hubs:
0
Comments2

Articles