Обзор
Веб-сервер
Утилиты для баз данных
Брокеры сообщений
Low-code
Менеджеры паролей и секретов

RabbitMQ HA

RabbitMQ — программный брокер сообщений на основе стандарта AMQP — тиражируемое связующее программное обеспечение, ориентированное на обработку сообщений.

Пример развёртывания

dockhost compose apply https://docs.dockhost.ru/example/message-broker/rabbitmq-ha.yaml
version: 1
project: example

# Environments configuration
environment:
    variables:
        RABBITMQ_DEFAULT_USER: admin
        RABBITMQ_DEFAULT_PASS: <password> # auto generate password
        RABBITMQ_ERLANG_COOKIE: <string:32> # auto generate cookie

    configs:
        rabbitmq.plugins: |
            [rabbitmq_management, rabbitmq_shovel, rabbitmq_shovel_management, rabbitmq_stream, rabbitmq_stream_management].
        rabbitmq.conf: |
            queue_master_locator=min-masters
            cluster_partition_handling=autoheal

            cluster_formation.peer_discovery_backend = classic_config
            cluster_formation.classic_config.nodes.1 = rabbit@rabbitmq-1
            cluster_formation.classic_config.nodes.2 = rabbit@rabbitmq-2
            cluster_formation.classic_config.nodes.3 = rabbit@rabbitmq-3

# Volumes configuration
volumes:
    rabbitmq-1:
        type: ssd
        size: 1Gib

    rabbitmq-2:
        type: ssd
        size: 1Gib

    rabbitmq-3:
        type: ssd
        size: 1Gib

# Containers configuration
containers:
    rabbitmq-1:
        image: rabbitmq:3.12-management
        resources:
            memory: 1024MiB
            cpu: 1
            cpuFraction: 20
        ports:
            - '4369'
            - '5672'
            - '5552'
            - '6000-6500'
            - '25672'
            - '35672-35682'
            - '15672'
            - '61613'
            - '1883'
            - '15674'
            - '15675'
            - '15692'
        variables:
            RABBITMQ_DEFAULT_USER: $RABBITMQ_DEFAULT_USER
            RABBITMQ_DEFAULT_PASS: $RABBITMQ_DEFAULT_PASS
            RABBITMQ_ERLANG_COOKIE: $RABBITMQ_ERLANG_COOKIE
        configs:
            - name: rabbitmq.plugins
              mountPath: /etc/rabbitmq/enabled_plugins
            - name: rabbitmq.conf
              mountPath: /etc/rabbitmq/rabbitmq.conf
        volumes:
            - name: rabbitmq-1
              mountPath: /var/lib/rabbitmq/mnesia

    rabbitmq-2:
        image: rabbitmq:3.12-management
        resources:
            memory: 1024MiB
            cpu: 1
            cpuFraction: 20
        ports:
            - '4369'
            - '5672'
            - '5552'
            - '6000-6500'
            - '25672'
            - '35672-35682'
            - '15672'
            - '61613'
            - '1883'
            - '15674'
            - '15675'
            - '15692'
        variables:
            RABBITMQ_DEFAULT_USER: $RABBITMQ_DEFAULT_USER
            RABBITMQ_DEFAULT_PASS: $RABBITMQ_DEFAULT_PASS
            RABBITMQ_ERLANG_COOKIE: $RABBITMQ_ERLANG_COOKIE
        configs:
            - name: rabbitmq.plugins
              mountPath: /etc/rabbitmq/enabled_plugins
            - name: rabbitmq.conf
              mountPath: /etc/rabbitmq/rabbitmq.conf
        volumes:
            - name: rabbitmq-2
              mountPath: /var/lib/rabbitmq/mnesia

    rabbitmq-3:
        image: rabbitmq:3.12-management
        resources:
            memory: 1024MiB
            cpu: 1
            cpuFraction: 20
        ports:
            - '4369'
            - '5672'
            - '5552'
            - '6000-6500'
            - '25672'
            - '35672-35682'
            - '15672'
            - '61613'
            - '1883'
            - '15674'
            - '15675'
            - '15692'
        variables:
            RABBITMQ_DEFAULT_USER: $RABBITMQ_DEFAULT_USER
            RABBITMQ_DEFAULT_PASS: $RABBITMQ_DEFAULT_PASS
            RABBITMQ_ERLANG_COOKIE: $RABBITMQ_ERLANG_COOKIE
        configs:
            - name: rabbitmq.plugins
              mountPath: /etc/rabbitmq/enabled_plugins
            - name: rabbitmq.conf
              mountPath: /etc/rabbitmq/rabbitmq.conf
        volumes:
            - name: rabbitmq-3
              mountPath: /var/lib/rabbitmq/mnesia

# Network configuration
network:
    services:
        rabbitmq:
            container:
                - rabbitmq-1
                - rabbitmq-2
                - rabbitmq-3
            ports:
                - 5672
                - 15672
                - 15692
                - 4369

    domains:
        rabbitmq: ~

    routes:
        rabbitmq:
            domain: rabbitmq
            path: /
            service: rabbitmq
            port: 15672

Дополнительные сведения о контейнере можно найти по адресу https://hub.docker.com/_/rabbitmq

dockhost network port-forward rabbitmq 15672:15672

Удаление примера

dockhost compose delete https://docs.dockhost.ru/example/message-broker/rabbitmq-ha.yaml
В этой статье
Пример развёртывания
Удаление примера

Мы используем файлы cookies

Продолжив работу с сайтом, вы соглашаетесь с   политикой использования файлов Cookies