zoukankan      html  css  js  c++  java
  • 搭建rabbitmq镜像模式集群

    搭建rabbitmq镜像模式集群

    安装依赖erlang

    编译前期准备

    yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git
    

    安装erlang

    wget http://erlang.org/download/otp_src_21.3.tar.gz
    tar zxvf otp_src_21.3.tar.gz -C /usr/local/
    mkdir /usr/local/erlang
    cd /usr/local/otp_src_21.3
    ./configure --prefix=/usr/local/erlang
    make install
    echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
    source /etc/profile
    
    测试是否正常
    #erl
    Erlang/OTP 21 [erts-10.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
    
    Eshell V10.3  (abort with ^G)
    1> 
    

    安装rabbitmq

    wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz
    xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz
    tar -xvf rabbitmq-server-generic-unix-3.7.15.tar
    mv rabbitmq_server-3.7.15/ /usr/local/rabbitmq
    echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile
    source /etc/profile
    rabbitmq-server -detached # 测试是否能启动
    

    搭建集群

    hostname主机名必须事先定义好,并且后期一定不要修改!!!

    hostnamectl set-hostname 主机名
    bash # 更新已修改的主机名
    

    加上两条主机名解析/etc/hosts

    10.9.119.6 node06 node06.ilinux.io
    10.9.119.7 node07 node07.ilinux.io
    

    集群内的/root/.erlang.cookie内容必须一致

    GHUUWUGTOKKTCGDRNMHI
    

    各节点启动服务

     rabbitmq-server -detached
     rabbitmq-plugins enable rabbitmq_management #开启web页面15672端口
    

    其它节点加入主节点

    rabbitmqctl stop_app # 停止服务
    rabbitmqctl reset # 清空元数据
    rabbitmqctl join_cluster rabbit@node07 --ram #以内存角色加入集群,--disc是硬盘角色
    rabbitmqctl start_app # 启动服务
    rabbitmqctl set_policy ha-all "#" '{"ha-mode":"all"}' # 将集群设为镜像模式
    rabbitmqctl cluster_status # 集群状态
    

    集群角色:

    内存节点: 只将数据保存到内存
    硬盘节点: 保存数据到内存和硬盘
    
    内存节点虽然不写入硬盘,但是它执行性能比硬盘节点要好,集群中,只需要一个硬盘节点保存数据就足够了如果集群中只有内存节点,那么不能全部停止它们,否则所有数据消息在服务器全部停机之后都会丢失
    

    镜像模式:镜像模式会主动将各node内的数据同步到其他节点,保证集群内各主机的数据一致性.

    多活模式:同样用于实现rabbitmq跨区域的数据同步,主要解决shove模式配置比较复杂,实际环境实现异地数据同步都是采用多活方式实现,多活模式需要依赖rabbitmq的federation插件。federation插件是一个不需要构建cluster,而在brokers之间传输消息的高性能插件,federation插件使用AMQP协议在brokers或者cluster之间传输消息

    https://www.rabbitmq.com/federation.html

    创建管理员用户

    rabbitmqctl add_user admin 密码
    rabbitmqctl set_user_tags admin administrator # 最高权限
    rabbitmqctl delete_user guest # 安全起见,删除默认用户
    
    每天进步一点点
  • 相关阅读:
    答《同样 25 岁,为什么有的人事业小成、家庭幸福,有的人却还在一无所有的起点上?》
    [面试记录-附部分面试题]2014第一波的找工作的记录
    项目总结(二)->一些常用的工具浅谈
    项目总结(一)->项目的七宗罪
    Android学习笔记(三)Application类简介
    Android学习笔记(二)Manifest文件节点详解
    Android学习笔记(一)Android应用程序的组成部分
    Mac下搭建Eclipse Android开发环境
    Android开发必知--自定义Toast提示
    正则表达式(一)
  • 原文地址:https://www.cnblogs.com/Otiger/p/14517093.html
Copyright © 2011-2022 走看看