以下是docker搭建RabbitMQ集群环境的完整攻略,包含两个示例说明。
示例1:使用docker-compose搭建RabbitMQ集群
步骤1:创建docker-compose.yml文件
在您的项目根目录下创建一个名为docker-compose.yml的文件,并将以下内容复制到该文件中:
version: '3'
services:
rabbitmq1:
image: rabbitmq:3.8-management-alpine
hostname: rabbitmq1
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_ERLANG_COOKIE: "secret_cookie"
RABBITMQ_NODENAME: "rabbitmq1@rabbitmq1"
RABBITMQ_CLUSTER_NODE_TYPE: "disc"
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: "-rabbit cluster_formation.peer_discovery_backend rabbit_peer_discovery_classic_config"
RABBITMQ_CLUSTER_DISC_RAM_NODES: "rabbitmq2@rabbitmq2,rabbitmq3@rabbitmq3"
volumes:
- rabbitmq1:/var/lib/rabbitmq
rabbitmq2:
image: rabbitmq:3.8-management-alpine
hostname: rabbitmq2
environment:
RABBITMQ_ERLANG_COOKIE: "secret_cookie"
RABBITMQ_NODENAME: "rabbitmq2@rabbitmq2"
RABBITMQ_CLUSTER_NODE_TYPE: "disc"
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: "-rabbit cluster_formation.peer_discovery_backend rabbit_peer_discovery_classic_config"
RABBITMQ_CLUSTER_DISC_RAM_NODES: "rabbitmq1@rabbitmq1,rabbitmq3@rabbitmq3"
volumes:
- rabbitmq2:/var/lib/rabbitmq
rabbitmq3:
image: rabbitmq:3.8-management-alpine
hostname: rabbitmq3
environment:
RABBITMQ_ERLANG_COOKIE: "secret_cookie"
RABBITMQ_NODENAME: "rabbitmq3@rabbitmq3"
RABBITMQ_CLUSTER_NODE_TYPE: "disc"
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: "-rabbit cluster_formation.peer_discovery_backend rabbit_peer_discovery_classic_config"
RABBITMQ_CLUSTER_DISC_RAM_NODES: "rabbitmq1@rabbitmq1,rabbitmq2@rabbitmq2"
volumes:
- rabbitmq3:/var/lib/rabbitmq
volumes:
rabbitmq1:
rabbitmq2:
rabbitmq3:
步骤2:启动RabbitMQ集群
在项目根目录下运行以下命令启动RabbitMQ集群:
docker-compose up -d
步骤3:检查RabbitMQ集群状态
使用以下命令检查RabbitMQ集群状态:
docker exec -it rabbitmq1 rabbitmqctl cluster_status
如果RabbitMQ集群正在运行,您将看到以下输出:
Cluster status of node rabbit@rabbitmq1 ...
[{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]},
{running_nodes,[rabbit@rabbitmq3,rabbit@rabbitmq2,rabbit@rabbitmq1]},
{cluster_name,<<"rabbit@rabbitmq1">>},
{partitions,[]},
{alarms,[{rabbit@rabbitmq3,[]},{rabbit@rabbitmq2,[]},{rabbit@rabbitmq1,[]}]}]
示例2:使用docker swarm搭建RabbitMQ集群
步骤1:初始化docker swarm
使用以下命令初始化docker swarm:
docker swarm init
步骤2:创建docker-compose.yml文件
在您的项目根目录下创建一个名为docker-compose.yml的文件,并将以下内容复制到该文件中:
version: '3'
services:
rabbitmq:
image: rabbitmq:3.8-management-alpine
hostname: rabbitmq
deploy:
replicas: 3
placement:
constraints:
- node.role == worker
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_ERLANG_COOKIE: "secret_cookie"
RABBITMQ_NODENAME: "rabbitmq@{{.Node.Hostname}}"
RABBITMQ_CLUSTER_NODE_TYPE: "disc"
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: "-rabbit cluster_formation.peer_discovery_backend rabbit_peer_discovery_classic_config"
volumes:
- rabbitmq:/var/lib/rabbitmq
volumes:
rabbitmq:
步骤3:启动RabbitMQ集群
在项目根目录下运行以下命令启动RabbitMQ集群:
docker stack deploy -c docker-compose.yml rabbitmq
步骤4:检查RabbitMQ集群状态
使用以下命令检查RabbitMQ集群状态:
docker exec -it $(docker ps -q -f name=rabbitmq_rabbitmq.1) rabbitmqctl cluster_status
如果RabbitMQ集群正在运行,您将看到以下输出:
Cluster status of node rabbit@rabbitmq.1 ...
[{nodes,[{disc,[rabbit@rabbitmq.1,rabbit@rabbitmq.2,rabbit@rabbitmq.3]}]},
{running_nodes,[rabbit@rabbitmq.3,rabbit@rabbitmq.2,rabbit@rabbitmq.1]},
{cluster_name,<<"rabbit@rabbitmq.1">>},
{partitions,[]},
{alarms,[{rabbit@rabbitmq.3,[]},{rabbit@rabbitmq.2,[]},{rabbit@rabbitmq.1,[]}]}]
以上就是docker搭建RabbitMQ集群环境的完整攻略,包含两个示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker搭建rabbitmq集群环境的方法 - Python技术站