rabbitmq 镜像集群负载均衡 搭建过程

时间:2024-05-20 19:38:52


rabbitmq 镜像集群配置 
 准备好几台服务器 比如三台 IP分别是 191,192,193

第一步 配置环境和主机名 分别设置三台机器 

    ① 设置主机名
        191:命令
          vim /ect/hostname
             rab191

        192:命令
          vim /ect/hostname
             rab192     

        193:命令

          vim /ect/hostname
             rab193     

    ② 设置机器之间可以通讯 三台机器都需设置 设置一样的
        命令           
          vim /ect/hosts

             10.0.0.191 rab191
             10.0.0.192 rab192 
             10.0.0.193 rab193

    ③ 安装运行的的环境         

       命令
           yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz

这样就设置了好了 环境              

第二步 三台机器都需要同样的操作 安装 rabbitmq 以及他的依赖 

    ①下载相关文件 

      命令 
        wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
        wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
        wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-.noarch.rpm
    ② 安装依赖和rabbitmq 
     
      命令
        rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm 
        rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
        rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm    

    ③ 修改配置文件 

        命令
        vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app        

           修改:loopback_users 中的 [<<"guest">>],只保留[guest]
           修改:heartbeat 为1  ## 心跳

   ④ 启动服务和关闭服务 命令

      服务启动和停止:
      启动 rabbitmq-server start &
      停止 rabbitmqctl app_stop
      然后重启 service rabbitmq-server restart

   ⑤ 安装插件 即是 UI 管理端      
      
      命令 
          rabbitmq-plugins enable rabbitmq_management

   ⑥ 访问 192.168.1.191:15672/ (如果访问不到 请关闭防火墙 百度一下 防火墙 怎么关闭 命令 systemctl stop firewalld.service   )
      登录账号 guset     密码 guset ,这时候发现是登录失败 ,因为这个guset用户只能是http://localhost:15672 可以登录而已 ,
      所以这时候就要配置一个东西了  文件rabbitmq.config  不管这个不存在 直接执行命令就好 ,

      命令 
      vim /etc/rabbitmq/rabbitmq.config 
 
        [{rabbit,[{tcp_listeners,[5672]},{loopback_users,["guest"]}]}].

     保全退出 要指定 这个用户   guest

     然后重启 service rabbitmq-server restart  ,再次登录就ok


 第三步 加入集群
     
     ① 停止所有的机器 
        命令
           rabbitmqctl stop    

     ② 同步 cookie 文件 ,即使复制文件 这时候要选择一个机器为主节点机器  比如是191

        进入191机器的文件目录 复制到俩台机器

              命令
                scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
              命令
                scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/

     ③ 然后再所有机器执行集群启动

               命令

                  rabbitmq-server -detached  

     ④ 加入集群中 即是加入到191 里面  

            首先 在192 操作 
                 命令停止:      
                       rabbitmqctl stop_app
                 命令加入集群: 
                       rabbitmqctl join_cluster --ram [email protected]
                 命令启动:
                       rabbitmqctl start_app

            然后在193操作           

                 命令停止:      
                       rabbitmqctl stop_app
                 命令加入集群: 
                       rabbitmqctl join_cluster --ram [email protected]
                 命令启动:
                       rabbitmqctl start_app

            最后如果成功了  请在任意一个 界面刷新 http://192.168.1.191:15672/#/  会看到三个node 就说明成功了 


      ⑤ 查看集群状态 当然也可以设置集群的名称  "aabb"
      
           命令设置名称 :rabbitmqctl set_cluster_name aabb     

           命令查看状态: rabbitmqctl cluster_status    


  第四步 设置镜像队列策略 在任意一个机器执行命令就可 
    
     命令:
       rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

     然后重启 service rabbitmq-server restart  ,再次登录就ok


  第五步 集群负载均衡已经完成了 .

第六步 总结 

学习过程中遇到很多问题 比如UI管理端登录不上 加入集群遇到问题 其实都是环境没有配置好

 

比如 加入集群 遇到 这个错误 

Clustering node [email protected] with [email protected] ...

Error: unable to connect to nodes [[email protected]]: nodedown

DIAGNOSTICS

==========

attempted to contact: [[email protected]]

[email protected]:

  * unable to connect to epmd (port 4369) on rab191: nxdomain (non-existing domain)

current node details:

- node name: '[email protected]'

- home dir: /var/lib/rabbitmq

- cookie hash: gLLlE/7C/DMNC+5jkkUyQw==

其实这个错误就是机器之间要通讯   即是本的第一步的第二点

还有在局域网  登录guest登录失败 就是第二步的第六点

 

还有其他错误就是防火墙或者自己端口就好了.

 

 这集群效果图

rabbitmq 镜像集群负载均衡 搭建过程