1.下载镜像
docker pull rabbitmq
2.创建挂载目录
mkdir -p /data/docker/data/rabbitmq/{rabbitmq1,rabbitmq2,rabbitmq3}
3.编辑docker-compose.yml配置文件
#启动创建 docker-compose --compatibility -f rabbitmq-compose.yml up -d #停止删除 docker-compose --compatibility -f rabbitmq-compose.yml down
4.创建初始化脚本
#!/bin/bash #reset first node echo "Reset first rabbitmq node." docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl stop_app' docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl reset' docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl start_app' #build cluster echo "Starting to build rabbitmq cluster with two ram nodes." docker exec rabbitmq2 /bin/bash -c 'rabbitmqctl stop_app' docker exec rabbitmq2 /bin/bash -c 'rabbitmqctl reset' docker exec rabbitmq2 /bin/bash -c 'rabbitmqctl join_cluster --ram rabbit@rabbitmq1' docker exec rabbitmq2 /bin/bash -c 'rabbitmqctl start_app' docker exec rabbitmq3 /bin/bash -c 'rabbitmqctl stop_app' docker exec rabbitmq3 /bin/bash -c 'rabbitmqctl reset' docker exec rabbitmq3 /bin/bash -c 'rabbitmqctl join_cluster --ram rabbit@rabbitmq1' docker exec rabbitmq3 /bin/bash -c 'rabbitmqctl start_app' #check cluster status echo "Check cluster status:" docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl cluster_status' docker exec rabbitmq2 /bin/bash -c 'rabbitmqctl cluster_status' docker exec rabbitmq3 /bin/bash -c 'rabbitmqctl cluster_status' echo "Starting to create user." docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl add_user admin admin@123' echo "Set tags for new user." docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl set_user_tags admin administrator' echo "Grant permissions to new user." docker exec rabbitmq1 /bin/bash -c "rabbitmqctl set_permissions -p '/' admin '.*' '.*' '.*'"
登录管理界面查看集群状态:
http://xxx.xxx.xxx.xxx:15672/#/
登录账号:admin/admin@123,或者默认账号guest/guest
登录账号:admin/admin@123,或者默认账号guest/guest
设置镜像队列构建高可用集群:
管理界面操作:
查看队列特性:
后台命令操作:
docker exec -it rabbitmq1 /bin/bash root@rabbitmq1:/# rabbitmqctl set_policy test "[a-zA-Z]" '{"ha-mode":"all","ha-sync-mode":"automatic"}'