rabbitmq 集群搭建

作者: 冬天里的懒喵 | 来源:发表于2018-07-10 19:59 被阅读3次

    1.环境准备

    准备节点 m162p235 m162p239 两台服务器,分别按照前文的方式安装完成了rabbitmq,并启动。


    image.png image.png

    保证上述两个节点都是可以正常工作的。下面我们就将这两个节点连接起来形成高可用的cluster,之后就可以让我们的exchange、queue在这两个节点之间复制,形成高可用的queue。

    2.修改cookie 和hosts文件

    在用户的默认目录下,有一个.erlang.cookie文件,其权限默认是400:


    image.png

    这个文件是erlang用来发现和互连的基础。我们需要做的很简单,将两个节点中的.erlang.cookie设置成一样的。这是erlang的约定,一样的cookie hash key他认为是合法和正确的连接。

    chmod 644 .erlang.cookie
    vim .erlang.cookie 
    #修改为另外一个节点对应的值
    #注意修改完毕之后要重新修改权限为400 不然rabbitmq启动会出现错误
     chmod 400 /opt/rabbitmq/.erlang.cookie 
    

    另外需要注意的是hosts文件,需要在hosts中都配置每个节点的host:

    192.168.162.235  m162p235
    192.168.162.239  m162p239
    

    两个节点都配置完hosts.能够进行互ping:

    [root@m162p239 etc]# ping m162p235
    PING m162p235 (192.168.162.235) 56(84) bytes of data.
    64 bytes from m162p235 (192.168.162.235): icmp_seq=1 ttl=64 time=1.52 ms
    64 bytes from m162p235 (192.168.162.235): icmp_seq=2 ttl=64 time=0.786 ms
    64 bytes from m162p235 (192.168.162.235): icmp_seq=3 ttl=64 time=1.69 ms
    64 bytes from m162p235 (192.168.162.235): icmp_seq=4 ttl=64 time=0.753 ms
    64 bytes from m162p235 (192.168.162.235): icmp_seq=5 ttl=64 time=3.22 ms
    64 bytes from m162p235 (192.168.162.235): icmp_seq=6 ttl=64 time=1.41 ms
    ^C
    --- m162p235 ping statistics ---
    6 packets transmitted, 6 received, 0% packet loss, time 5172ms
    rtt min/avg/max/mdev = 0.753/1.566/3.226/0.823 ms
    [root@m162p239 etc]# 
    

    另外一个节点:

    [root@m162p235 etc]# ping m162p239
    PING m162p239 (192.168.162.239) 56(84) bytes of data.
    64 bytes from m162p239 (192.168.162.239): icmp_seq=1 ttl=64 time=0.700 ms
    64 bytes from m162p239 (192.168.162.239): icmp_seq=2 ttl=64 time=0.768 ms
    64 bytes from m162p239 (192.168.162.239): icmp_seq=3 ttl=64 time=1.48 ms
    64 bytes from m162p239 (192.168.162.239): icmp_seq=4 ttl=64 time=4.03 ms
    64 bytes from m162p239 (192.168.162.239): icmp_seq=5 ttl=64 time=5.24 ms
    64 bytes from m162p239 (192.168.162.239): icmp_seq=6 ttl=64 time=0.559 ms
    ^C
    --- m162p239 ping statistics ---
    6 packets transmitted, 6 received, 0% packet loss, time 5291ms
    rtt min/avg/max/mdev = 0.559/2.130/5.245/1.830 ms
    [root@m162p235 etc]# 
    

    3.配置集群

    选择其中一个节点,连到另外一个节点,现在选择m162p235:

    cd /opt/rabbitmq/rabbitmq/sbin
    

    查看集群状态

    [rabbitmq@m162p235 sbin]$ ./rabbitmqctl cluster_status
    Cluster status of node rabbit@m162p235 ...
    [{nodes,[{disc,[rabbit@m162p235]}]},
     {running_nodes,[rabbit@m162p235]},
     {cluster_name,<<"rabbit@m162p235">>},
     {partitions,[]},
     {alarms,[{rabbit@m162p235,[]}]}]
    

    停止app

    [rabbitmq@m162p235 sbin]$ ./rabbitmqctl stop_app
    Stopping rabbit application on node rabbit@m162p235 ...
    

    加入集群

    [rabbitmq@m162p235 sbin]$ ./rabbitmqctl join_cluster --ram rabbit@m162p239
    Clustering node rabbit@m162p235 with rabbit@m162p239
    

    启动app

    [rabbitmq@m162p235 sbin]$ ./rabbitmqctl start_app
    Starting node rabbit@m162p235 ...
    
      ##  ##
      ##  ##      RabbitMQ 3.7.7. Copyright (C) 2007-2018 Pivotal Software, Inc.
      ##########  Licensed under the MPL.  See http://www.rabbitmq.com/
      ######  ##
      ##########  Logs: /opt/rabbitmq/rabbitmq/var/log/rabbitmq/rabbit@m162p235.log
                        /opt/rabbitmq/rabbitmq/var/log/rabbitmq/rabbit@m162p235_upgrade.log
    
                  Starting broker...
     completed with 3 plugins.
    [rabbitmq@m162p235 sbin]$ 
    

    查看网页状态:


    image.png image.png

    这样就能看到两个节点。
    为了提高性能,不需要两个节点都是disc的节点,所以我们需要启动一个节点为RAM模式。
    可以通过如下命令改变节点的模式:

    rabbitmqctl change_cluster_node_type  ram
    

    这样集群假设成功。

    相关文章

      网友评论

        本文标题:rabbitmq 集群搭建

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