zoukankan      html  css  js  c++  java
  • 集群架构和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页面可以看见集群信息(两个磁盘节点,一个内存节点)

  • 相关阅读:
    面试题63 二叉搜索树的第k个结点
    面试题62 序列化二叉树
    面试题61 把二叉树打印成多行
    面试题60 按之字形顺序打印二叉树
    centos下Nginx代理访问web服务
    回文数
    两数之和--哈希表unordered_map
    删除链表的倒数第N个节点---链表的应用
    基础篇,排序(冒泡排序,快速排序)
    linuxC网络聊天室简单代码,CSDN博客迁移
  • 原文地址:https://www.cnblogs.com/monkjavaer/p/10786753.html
Copyright © 2011-2022 走看看