zoukankan      html  css  js  c++  java
  • Rabbitmq 集群

    集群概述

    通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收。
     
    这些节点通过 RabbitMQ HA 队列(镜像队列)进行消息队列结构复制。本方案中搭建 3 个节点,并且都是磁盘节点(所有节点状态保持一致,节点完全对等),只要有任何一个节点能够工作,RabbitMQ 集群对外就能提供服务。

    环境

    • CentOS 7,64位
    • RabbitMQ 3.1.5
     
    RabbitMQ 集群安装在 3 个节点上:192.168.1.1、192.168.1.2、192.168.1.3;
     
     

    配置步骤

    1. 安装 erlang、rabbitmq
    在 192.168.1.1、192.168.1.2、192.168.1.3 三个节点上安装,然后开启 RabbitMQ 监控插件:
    rabbitmq-plugins enable rabbitmq_management
    2. 修改 /etc/hosts
    加入集群 3 个节点的描述:
    192.168.1.1 node1
    192.168.1.2 node2
    192.168.1.3 node3
     
    3. 设置 Erlang Cookie
    Erlang Cookie 文件:/var/lib/rabbitmq/.erlang.cookie。这里将 node1 的该文件复制到 node2、node3,由于这个文件权限是 400,所以需要先修改 node2、node3 中的该文件权限为 777:
    # chmod 777 /var/lib/rabbitmq/.erlang.cookie
    然后将 node1 中的该文件拷贝到 node2、node3,最后将权限和所属用户/组修改回来:
    # chmod 400 /var/lib/rabbitmq/.erlang.cookie
    # chown rabbitmq /var/lib/rabbitmq/.erlang.cookie
    # chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
     
    4. 使用 -detached 参数运行各节点
    # rabbitmqctl stop
    # rabbitmq-server -detached
     
    5. 组成集群
    将 node2、node3 与 node1 组成集群:
     
    node2 # rabbitmqctl stop_app
    node2 # rabbitmqctl join_cluster rabbit@node1
    node2 # rabbitmqctl start_app
      
    node3 # rabbitmqctl stop_app
    node3 # rabbitmqctl join_cluster rabbit@node1
    node3 # rabbitmqctl start_app
     
    此时 node2 与 node3 也会自动建立连接;如果要使用内存节点,则可以使用
    node2 # rabbitmqctl join_cluster --ram rabbit@node1 加入集群。
     
    集群配置好后,可以在 RabbitMQ 任意节点上执行 rabbitmqctl cluster_status 来查看是否集群配置成功。
     
    6. 设置镜像队列策略
    在任意一个节点上执行:
    # rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
    将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。
  • 相关阅读:
    OK335x mksd.sh hacking
    Qt jsoncpp 对象拷贝、删除、函数调用 demo
    OK335xS 256M 512M nand flash make ubifs hacking
    Qt QScrollArea and layout in code
    JsonCpp Documentation
    Qt 4.8.5 jsoncpp lib
    Oracle数据库生成UUID
    freemarker得到数组的长度
    FreeMarker中if标签内的判断条件
    freemarker语法
  • 原文地址:https://www.cnblogs.com/zhangeamon/p/7068454.html
Copyright © 2011-2022 走看看