美文网首页
Dcoker下构建RabbitMQ队列(Haproxy负载均衡)

Dcoker下构建RabbitMQ队列(Haproxy负载均衡)

作者: Vincentook | 来源:发表于2021-01-06 18:09 被阅读0次

部署集群的Dockerfile文件

# 编排php,redis,nginx容器
version: "3.6" # 确定docker-composer文件的版本
services: # 代表就是一组服务 - 简单来说一组容器
  # server
  rabbitmq_server_172_3: # 这个表示服务的名称,课自定义; 注意不是容器名称
    image: rabbitmq:3.7-management # 指定容器的镜像文件
    ports: # 配置容器与宿主机的端口
      - "15673:15672"
      - "5673:5672"
    networks: ## 引入外部预先定义的网段
       rabbitmq:
         ipv4_address: 172.200.7.3   #设置ip地址
    hostname: mq3
    volumes:
      - "/www/wwwroot/2007_SRM/rabbitmq/3:/var/lib/rabbitmq"
    container_name: rabbitmq_server_172_3 # 这是容器的名称
    # command:
  rabbitmq_server_172_2: # 这个表示服务的名称,课自定义; 注意不是容器名称
    image: rabbitmq:3.7-management # 指定容器的镜像文件
    ports: # 配置容器与宿主机的端口
      - "15672:15672"
      - "5672:5672"
    networks: ## 引入外部预先定义的网段
       rabbitmq:
         ipv4_address: 172.200.7.2   #设置ip地址
    hostname: mq2
    volumes:
      - "/www/wwwroot/2007_SRM/rabbitmq/2:/var/lib/rabbitmq"
    container_name: rabbitmq_server_172_2 # 这是容器的名称
  rabbitmq_server_172_4: # 这个表示服务的名称,课自定义; 注意不是容器名称
    image: rabbitmq:3.7-management # 指定容器的镜像文件
    ports: # 配置容器与宿主机的端口
      - "15674:15672"
      - "5674:5672"
    networks: ## 引入外部预先定义的网段
       rabbitmq:
         ipv4_address: 172.200.7.4   #设置ip地址
    hostname: mq4
    volumes:
      - "/www/wwwroot/2007_SRM/rabbitmq/4:/var/lib/rabbitmq"
    container_name: rabbitmq_server_172_4 # 这是容器的名称
# 设置网络模块
networks:
  # 自定义网络
  rabbitmq:
    driver: bridge
    ipam: #定义网段
      config:
        - subnet: "172.200.7.0/24"

部署

docker-compose up -d 

注意 如果失败 可能是防火墙问题

一、同步cookie和hostname

1、同步cookie

随表挑一台,拿出cookie,覆盖其他(以3为主,其他cookie覆盖为3的cookie)

文件位置(改共享目录的文件)

# 进入 rabbitmq_server_172_3容器
docker exec -it rabbitmq_server_172_3 bash
# 获取cookie
cat /var/lib/rabbitmq/.erlang.cookie
修改cookie后重启

2、修改hosts和hostame

host与hostname所有节点保持一致,因为互为主从
#在2中,/etc/hosts 加入 
#直接覆盖
cp /var/lib/rabbitmq/hosts /etc/hosts 
cp /var/lib/rabbitmq/hostname /etc/hostname 

#hosts(3个容器的hosts保持一致)
172.200.7.2     mq2
172.200.7.3     mq3
172.200.7.4     mq4

#/etc/hostname  追加  (3个容器的hosts保持一致)
mq2
mq3
mq4

二、加入集群

rabbitmqctl stop_app   #停止

rabbitmqctl reset  #重新配置

#加入集群节点
rabbitmqctl join_cluster --ram rabbit@mq3

#再启动
rabbitmqctl start_app

相关文章

网友评论

      本文标题:Dcoker下构建RabbitMQ队列(Haproxy负载均衡)

      本文链接:https://www.haomeiwen.com/subject/vjjdvktx.html