swarm部署rabbitmq

 
 
version: "3.7"
services:
  rabbit1:
    image: rabbitmq:3.8.1  
    networks:
      - dms
    volumes:
      - rabbitmq-data1:/var/lib/rabbitmq
    environment:
      - RABBITMQ_ERLANG_COOKIE="xxl_civic_xxl"
      - RABBITMQ_DEFAULT_USER="dms"
      - RABBITMQ_DEFAULT_PASS="sco2018cass"
    ports:
      - 5672:5672
      - 15672:15672
    hostname: rabbit1
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.hostname == master
  rabbit2:
    image: rabbitmq:3.8.1  
    networks:
      - dms
    volumes:
      - rabbitmq-data2:/var/lib/rabbitmq
    environment:
      - RABBITMQ_ERLANG_COOKIE="xxl_civic_xxl"
      - RABBITMQ_DEFAULT_USER="dms"
      - RABBITMQ_DEFAULT_PASS="sco2018cass"
    hostname: rabbit2
    ports:
      - 5673:5672
      - 15673:15672
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.hostname == node1
  rabbit3:
    image: rabbitmq:3.8.1
    networks:
      - dms
    volumes:
      - rabbitmq-data3:/var/lib/rabbitmq
    environment:
      - RABBITMQ_ERLANG_COOKIE="xxl_civic_xxl"
      - RABBITMQ_DEFAULT_USER="dms"
      - RABBITMQ_DEFAULT_PASS="sco2018cass"
    hostname: rabbit3
    ports:
      - 5674:5672
      - 15674:15672
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.hostname == node2

volumes:
  rabbitmq-data1:
    driver: local
  rabbitmq-data2:
    driver: local
  rabbitmq-data3:
    driver: local

networks:
  #定义服务网桥名称
  dms:
    #指定网桥驱动,有bridge/overlay,默认是bridge
    driver: overlay
    #false-统自动创建网桥名,格式为: 目录名_网桥名,默认为false; true-使用外部创建的网桥,需要自己手动创建
    external: true

创建集群

docker stack deploy -c rabbitmq.yml rabbitmq

分别进去3个pod中,重置加入集群

//进入rabbit1容器,作为集群基准
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

//进入rabbit2容器
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app

//进入rabbit3容器
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app

 

常见操作

# 添加账号
rabbitmqctl add_user 账号 密码
# 设置用户级别/角色
rabbitmqctl set_user_tags 账号 administrator
# 修改密码
rabbitmqctl change_password Username Newpassword
# 删除用户
rabbitmqctl delete_user Username
# 查看用户清单
rabbitmqctl list_users
# 为用户设置administrator角色
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
rabbitmqctl set_permissions -p / root ".*" ".*" ".*"

问题无法登陆

rabbitmqctl add_user admin admin

# 为用户 admin 设置 administrator 级别
rabbitmqctl set_user_tags admin administrator

# 超级用户级别拥有所有资源权限,不需要设置
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

 

问题2,页面15672无法打开

 

 rabbitmq-plugins list 

 rabbitmq-plugins enable rabbitmq_management  启动后15672才能打开

 

posted @ 2022-06-09 16:12  不敲代码  阅读(45)  评论(0)    收藏  举报