zoukankan      html  css  js  c++  java
  • RabbitMQ 集群部署(linux-centos6.5)

    RabbitMQ 集群部署(linux-centos6.5)

    正式做集群配置前先了解几个概念,

    启动方式:

    1、正常方式启动  rabbitmq-server start          或者  rabbitmq-server

    2、后台方式启动:rabbitmq-server -detached

    (后台式启动,缺点部分错误显示不出来,我就被坑了,可以使用不加【-detached】方式启动,缺点多开几个终端窗口。)

     一、单机集群

    由于是在单机上启动多个实例,因此必须使用不同的端口,不然启动会报错

    可见官方文档,查看端口意义

    官方文档单机集群示例如下,

    1、创建单机集群节点,

      1.1 默认节点

    rabbitmq-server -detached 

    1.2节点1
    RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit1 rabbitmq-server -detached
    或者
    RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}] -rabbitmq_stomp tcp_listeners [61614] -rabbitmq_mqtt tcp_listeners [1884]" RABBITMQ_NODENAME=rabbit1 rabbitmq-server -detached
    1.3节点2
    RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" RABBITMQ_NODENAME=rabbit2 rabbitmq-server -detached

    或者

     RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}] -rabbitmq_stomp tcp_listeners [61615] -rabbitmq_mqtt tcp_listeners  [1885]" RABBITMQ_NODENAME=rabbit2 rabbitmq-server -detached

    节点正常启动如下:

    2、查看节点状态

    单节点时查看节点状态使用,rabbitmqctl status

    但是当单机有多个节点时就需要指定节点,如下:

    rabbitmqctl status -n rabbit1

    3、通过管理页面查看各节点状态

    这样的话你可以通过:http://127.0.0.1:15672/#/http://127.0.0.1:15673/#/ ,http://127.0.0.1:15674/#/ 
    访问web查看相关节点是否真的存在。

    假如你是远程访问,则需要使用http://IP:15672/,http://IP:15673/,http://IP:15674/

    当你访问时,你会发现使用你之前在15672上创建的用户不能登录,此时需要你使用命令行自行创建用户

    步骤如下:

    配置管理员账号:

        rabbitmqctl add_user ww ww  -n rabbit1

        rabbitmqctl set_user_tags ww administrator -n rabbit1

    示例如下:

    完成后可使用15673端口登录:

    4、集群操作

     4.1、集群配置操作步骤如下:

    • 停止节点的应用程序
    • 重新设置节点的元数据和状态为清空状态。
    • 加入第一节点
    • 重新启动节点应用程序
    •   rabbitmqctl -n rabbit1 stop_app
    •   rabbitmqctl -n rabbit1 reset
    •   rabbitmqctl -n rabbit1  join_cluster rabbit
    •   rabbitmqctl -n rabbit1 start_app

    4.2、第二节点实际操作如下:

    页面查看状态如下:

     4.3、第三节点实际操作如下:

    创建RAM节点   
    
    磁盘和RAM节点
    节点可以是磁盘节点或RAM节点。(注意: 磁盘和磁盘可互换使用)。RAM节点仅将内部数据库表存储在RAM中。这不包括消息,消息存储索引,队列索引和其他节点状态。
    
    在绝大多数情况下,您希望所有节点都是磁盘节点; RAM节点是一种特殊情况,可用于改进具有高队列,交换或绑定流失的性能群集。RAM节点不提供更高的消息速率。如有疑问,请仅使用磁盘节点。
    
    由于RAM节点仅将内部数据库表存储在RAM中,因此它们必须在启动时从对等节点同步它们。这意味着群集必须至少包含一个磁盘节点。因此,无法手动删除群集中的最后一个剩余磁盘节点。
    
    我们可以在第一次加入集群时将节点声明为RAM节点。我们像以前一样使用rabbitmqctl join_cluster执行此 操作,但是传递 --ram标志:

       

    rabbitmqctl -n rabbit2  join_cluster --ram rabbit

     

    页面查看状态如下:

    也可以通过命令行查看集群状态:

     rabbitmqctl -n rabbit1 cluster_status

  • 相关阅读:
    TCP握手建立与释放连接
    Oracle Golden Gate概要
    Hadoop Spark 基础教程
    #npm install# MSBUILD : error MSB4132: 无法识别工具版本“2.0”。可用的工具版本为 "4.0"。
    MySQL5.7 不同操作系统下的主从配置
    MongoDB authentication failed
    maven相关基础
    一次失败的定点漏洞挖掘之代码审计宜信Davinci
    记一次在tp5代码执行下的pcntl_exec瞎操作
    【CVE-2020-1957】shiro搭配spring时身份验证绕过漏洞分析
  • 原文地址:https://www.cnblogs.com/pinghengxing/p/11218537.html
Copyright © 2011-2022 走看看