• 集群架构和CentOS7安装RabbitMQ集群(单机版)


    1. 集群架构

    1.1 四种内部元数据

    队列元数据、交换器元数据、绑定元数据、vhost元数据。
    单一节点中:会将数据存储到内存,同时将持久化元数据保存到硬盘。
    集群中: 存储到磁盘上、内存中。
    集群中的队列:不是每一个rabbitmq节点都有所有队列的拷贝,集群只会在单个节点上创建完整信息。

    1.2 、内存节点和磁盘节点

    内存节点: 元数据定义都存储在内存中。内存节点有出色的性能。
    磁盘节点: 元数据定义都存储在磁盘中(单节点服务器都是磁盘节点)。磁盘节点能持久化信息。
    rabbitmq集群中至少有一个磁盘节点。当节点加入或者离开集群时,必须将变更通知到至少一个磁盘节点。
    如果集群只有一个磁盘节点,正好它崩了。此时集群还可以路由消息。但是不能创建元数据和管理用户和节点。解决方案是集群中设置两个磁盘节点。

    2. 单机集群搭建

    2.1 配置集群前,先确保第一次安装的rabbitmq服务关闭:
    rabbitmqctl stop
    
    2.2 在一台服务器上启动3个节点的集群
    RABBITMQ_NODE_PORT=5672 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15672}]" RABBITMQ_NODENAME=rabbit  rabbitmq-server -detached
    RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit_1  rabbitmq-server -detached
    RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" RABBITMQ_NODENAME=rabbit_2  rabbitmq-server -detached
    
    2.3 配置web UI 访问:

    rabbit

    [root@localhost ~]# rabbitmqctl -n rabbit@localhost add_user admin admin
    [root@localhost ~]# rabbitmqctl -n rabbit@localhost set_user_tags admin administrator
    [root@localhost ~]# rabbitmqctl -n rabbit@localhost set_permissions -p / admin ".*" ".*" ".*"
    

    rabbit_1

    [root@localhost ~]# rabbitmqctl -n rabbit_1 add_user admin admin
    [root@localhost ~]# rabbitmqctl -n rabbit_1 set_user_tags admin administrator
    [root@localhost ~]# rabbitmqctl -n rabbit_1 set_permissions -p / admin ".*" ".*" ".*"
    

    rabbit_2:

    [root@localhost ~]# rabbitmqctl -n rabbit_2 add_user admin admin
    [root@localhost ~]# rabbitmqctl -n rabbit_2 set_user_tags admin administrator
    [root@localhost ~]# rabbitmqctl -n rabbit_2 set_permissions -p / admin ".*" ".*" ".*"
    

    访问web页面: http://ip:15672/#/ http://ip:15673/#/ http://ip:15674/#/

    2.4 第一个rabbit为主节点(磁盘节点)
    2.5 配置rabbit_1为磁盘节点
    [root@localhost ~]# rabbitmqctl -n rabbit_1 stop_app
    [root@localhost ~]# rabbitmqctl -n rabbit_1 reset
    [root@localhost ~]# rabbitmqctl -n rabbit_1 join_cluster rabbit@localhost
    [root@localhost ~]# rabbitmqctl -n rabbit_1 start_app
    
    2.6 配置rabbit_2为RAM内存节点
    [root@localhost ~]# rabbitmqctl -n rabbit_2 stop_app
    [root@localhost ~]# rabbitmqctl -n rabbit_2 reset
    [root@localhost ~]# rabbitmqctl -n rabbit_2 join_cluster rabbit@localhost --ram
    [root@localhost ~]# rabbitmqctl -n rabbit_2 start_app
    
    2.7 查看集群状态:
    [root@localhost ~]# rabbitmqctl cluster_status
    

    得到以下结果:

    [root@localhost ~]# rabbitmqctl cluster_status
    Cluster status of node rabbit@localhost
    [{nodes,[{disc,[rabbit@localhost,rabbit_1@localhost]},
             {ram,[rabbit_2@localhost]}]},
     {running_nodes,[rabbit_2@localhost,rabbit_1@localhost,rabbit@localhost]},
     {cluster_name,<<"rabbit@localhost">>},
     {partitions,[]},
     {alarms,[{rabbit_2@localhost,[]},
              {rabbit_1@localhost,[]},
              {rabbit@localhost,[]}]}]
    

    访问web页面可以看见集群信息(两个磁盘节点,一个内存节点)

  • 相关阅读:
    vue ui 没反应
    vue脚手架安装教程
    DOS命令如何进入指定文件夹
    python-格式化(%,format,f-string)输出+输入
    Python基础-列表、元组、字典、字符串(精简解析)
    python中的lambda函数用法
    初识JAVA
    关于继承、封装、多态、抽象和接口(Java)
    Python中单下划线和双下划线
    Postgresql 创建SEQUENCE,Springboot中使用KeyHolder
  • 原文地址:https://www.cnblogs.com/monkjavaer/p/10786753.html
Copyright © 2020-2023  润新知