zoukankan      html  css  js  c++  java
  • docker部署rabbitmq集群

    主机

    192.168.1.125 h3 rabbit1
    192.168.1.126 h4 rabbit2
    192.168.1.14 h6 rabbit3

    宿主机操作

    mkdir /rabbitmq/data -p
    touch /rabbitmq/{rabbitmq.conf, hosts} 
    vim /rabbitmq/hosts

    192.168
    .1.125 h3 rabbit1 192.168.1.126 h4 rabbit2 192.168.1.14 h6 rabbit3
    vim /rabbitmq/rabbitmq.conf   # 如果使用默认端口就不需要创建和修改这个文件了   或者使用 -e NODE_PORT=11111 来指定listeners.tcp.default端口  // management.tcp.port 没有找到这个变量名
    loopback_users.guest = false
    listeners.tcp.default = 11111
    management.tcp.port = 22222

    从hub.docker.com上找容器, 默认的latest不包含web界面

    docker pull rabbitmq:3.8.3-management

    h3宿主机上创建容器

    docker run -d --network=host --name rabbit1 -v /etc/localtime:/etc/localtime:ro -v /rabbitmq/data:/var/lib/rabbitmq -v /rabbitmq/hosts:/etc/hosts  -v /rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=passwd 479479d8e188

    h4 h6宿主机上创建容器

    docker run -d --network=host --name rabbit2 -v /etc/localtime:/etc/localtime:ro -v /rabbitmq/data:/var/lib/rabbitmq -v /rabbitmq/hosts:/etc/hosts -v /rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf -e RABBITMQ_ERLANG_COOKIE='rabbitcookie'   479479d8e188
    
    docker run -d --network=host --name rabbit3 -v /etc/localtime:/etc/localtime:ro -v /rabbitmq/data:/var/lib/rabbitmq -v /rabbitmq/hosts:/etc/hosts -v /rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf -e RABBITMQ_ERLANG_COOKIE='rabbitcookie'   479479d8e188

    设置rabbit2节点加入集群

    docker exec -it rabbit2 /bin/bash
    
    rabbitmqctl stop_app
    
    rabbitmqctl reset
    
    rabbitmqctl join_cluster rabbit@h3
    
    rabbitmqctl start_app
    
    exit

    设置rabbit3节点加入集群

    docker exec -it rabbit3 bash
    
    rabbitmqctl stop_app
    
    rabbitmqctl reset
    
    rabbitmqctl join_cluster --ram rabbit@h3
    
    rabbitmqctl start_app
    
    exit
    
    参数“--ram”表示设置为内存节点,默认为磁盘节点, 做的集群所以一个设置磁盘节点,一个设置内存节点, 内存节点读取快,磁盘节点安全

    查询集群状态

    rabbitmqctl cluster_status

    故障节点的处理

    docker exec -it rabbit2 /bin/bash
    
    rabbitmqctl stop
    
    #在一个正常的节点上移除有问题的节点
    
    rabbitmqctl  -n rabbit@h3 forget_cluster_node rabbit@h4
  • 相关阅读:
    为甚么 国企做互联网总做不起来?
    WEB开发:Java与Php对比
    String中的CompareTo
    String API
    死锁(Deadlock)
    100人100盏灯(详解)
    debian、ubuntu安装metasploit通用方法
    xman随机数相关题目
    CTF辅助脚本
    2019全国大学生信息安全竞赛ciscn-writeup(4web)
  • 原文地址:https://www.cnblogs.com/liuYGoo/p/12575038.html
Copyright © 2011-2022 走看看