zoukankan      html  css  js  c++  java
  • RabbitMQ 3.6.10 cluster (Centos 6.8)

    首先先把 RabbitMQ 安装好,包括 er-lang ,这里就不多说明了,只针对cluster 建设。
    我假设是通过 rpm 的方式安装,那么路径上就比较好解释说明。

    针对rabbitmq 所使用的port,分别为:4369,5672, 15672, 25672 ,因此,最后防火墙别忘了设置允许访问,在设置之前请先关闭防火墙。

    假设有3台服务器,名称分别为:rbmq0, rbmq1, rbmq2, 其中,rbmq0 是主服务器。

    然后到3台的服务器中,添加到 /etc/hosts 中,分别为:

    X.X.28.116  rbmq0 SVR-28-116
    X.X.28.114  rbmq1 SVR-28-114
    X.X.28.113  rbmq2 SVR-28-113

    再到每一台中,修改 /etc/rabbitmq/rabbitmq-env.conf  内容如下:

    RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="+A 128"
    NODE_PORT=5672
    NODENAME=rbmq0  <-- 每一台服务器添加自己服务器的名字,另外两台分别为:rbmq1, rbmq2

    然后先到 rbmq0 上执行 rabbitmq, 这主要是确保3台的rabbitmq 都没有问题,所以请到每一台执行rabbitmq-server

    [root@SVR-28-116 ~]# service rabbitmq-server restart

    只要你没修改 /etc/rabbitmq/rabbitmq.conf 文件, 基本上不会有什么问题。第一次使用,当你执行完毕之后,请到 /var/lib/rabbitmq 目前录找 

    这个文件是由rabbitmq生成的,第一次执行就会出现在以上的目录中。

    然后看下内容:

    分别把文件内容复制到另外2台服务器,同样放在 /var/lib/rabbitmq 目录下,你可以用以下方式快速处理。目的就是必须保证3台的 ,erlang.cookie 内容的一至。很重要!!

     然后再到第一台rbmq0 执行:

    [root@SVR-28-116 ~]# rabbitmqctl cluster_nodes

    Cluster status of node 'rbmq0@SVR-28-116'
    [{nodes,[{disc,['rbmq0@SVR-28-116']}]},
    {running_nodes,['rbmq0@SVR-28-116']},
    {cluster_name,<<"rbmq0">>},
    {partitions,[]},
    {alarms,[{'rbmq0@SVR-28-116',[]}]}]

    这时你可以先放一边,再到另外两台上按以下方式分别执行:

    rbmq1 Server

    [root@SVR-28-114 ~]# service rabbitmq-server start

    执行后确保没有问题。

    [root@SVR-28-114 ~]# rabbitmqctl stop_app

    [root@SVR-28-114 ~]# rabbitmqctl join_cluster rbmq0@SVR-28-116

    Clustering node 'rbmq1@SVR-28-114' with 'rbmq0@SVR-28-116'

    那就表示已经添加成功

    另一台同样也执行

    rbmq1 Server

    [root@SVR-28-113 ~]# service rabbitmq-server start

    执行后确保没有问题。

    [root@SVR-28-113 ~]# rabbitmqctl stop_app

    [root@SVR-28-113 ~]# rabbitmqctl join_cluster rbmq0@SVR-28-116

    Clustering node 'rbmq1@SVR-28-113' with 'rbmq0@SVR-28-116'

    表示已经添加成功

    然后,我们再到第一台执行:

    [root@SVR-28-116 rabbitmq]# rabbitmqctl cluster_status
    Cluster status of node 'rbmq0@SVR-28-116'
    [{nodes,[{disc,['rbmq0@SVR-28-116','rbmq1@SVR-28-114','rbmq2@SVR-28-113']}]},     <-- 114, 113 已经添加成功

    {running_nodes,['rbmq0@SVR-28-116']},
    {cluster_name,<<"rbmq0">>},
    {partitions,[]},
    {alarms,[{'rbmq0@SVR-28-116',[]}]}]

    基本上算是已经成功了。接下来再做几件事:

    [root@SVR-28-116 rabbitmq]# rabbitmq-plugins enable rabbitmq_management

    主要是使用web介面的管理。

    访问web:

    http://X.X.28.116:15672

    可以看到,rbmq1,rbmq2 并没有执行。那么,我们分别到该两台服务器启动rabbitmq-server

    service rabbitmq-server start

     基本上算是完成了。

     Firewall

    # rabbitmq amqp
    -A INPUT -p tcp -m tcp -m state --dport 5672:5673 --state NEW -j ACCEPT
    # rabbitmq http management
    -A INPUT -p tcp -m tcp -m state --dport 15672 --state NEW -j ACCEPT
    # rabbitmq cluster
    -A INPUT -p tcp -m tcp -m state --dport 25672 --state NEW -j ACCEPT

    # rabbitmq  epmd (port 4369) on mqmaster
    -A INPUT -p tcp -m tcp -m state --dport 4369 --state NEW -j ACCEPT

  • 相关阅读:
    Apache Solr 远程命令+XXE执行漏洞(CVE-2017-12629)
    Apache Shiro RememberMe 1.2.4 反序列化漏洞
    ActiveMQ任意文件写入漏洞(CVE-2016-3088)
    ssrf对redis未授权访问写webshell
    fastjson<1.2.47 RCE 漏洞复现
    Redis基于主从复制的RCE(redis4.x 5.x)复现
    本机浏览器无法访问linux的tomcat
    测试覆盖率工具EclEmma安装与使用
    eclemma怎么安装 eclemma的安装与简单使用图文教程(附下载)
    .bat脚本基本命令语法
  • 原文地址:https://www.cnblogs.com/ray30th/p/7305007.html
Copyright © 2011-2022 走看看