zoukankan      html  css  js  c++  java
  • rabbitmq 镜像集群部署

    环境

    centos7,安装基础的包,做好时间同步,关闭防火墙以及selinux,以及主机名解析

    192.168.1.62 data4
    192.168.1.63 data5
    192.168.1.64 data6

    版本 rabbitmq-server-3.8.19

    安装rabbitmq rpm 源

    [root@data4 ~]# curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

    安装erlang 源

    [root@data4 ~]# curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

    [root@data4 ~]# yum install rabbitmq-server

    配置启动文件

    [root@data4 ~]# mkdir -pv /data/rabbitmq/{data,logs}

    [root@data4 ~]# chown rabbitmq:rabbitmq /data/rabbitmq/ -R

    [root@data4 ~]# cd /etc/rabbitmq/

    默认的实例文件,下载或者复制出来,创建 rabbitmq-server.conf

    https://github.com/rabbitmq/rabbitmq-server/blob/master/deps/rabbit/docs/rabbitmq-server.service.example

    [root@data4 ~]# vim rabbitmq-env.conf

    RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf
    RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
    RABBITMQ_LOG_BASE=/data/rabbitmq/logs
    RABBITMQ_NODENAME=rabbit@data4
    #RABBITMQ_NODE_IP_ADDRESS
    #RABBITMQ_NODE_PORT
    

    scp 传输到其它两个节点一样的配置,唯一要注意这个RABBITMQ_NODENAME=rabbit@data4,改成对应主机。

    [root@data4 ~]# systemctl enable --now rabbitmq-server
    [root@data4 ~]# rabbitmq-plugins enable rabbitmq_management
    [root@data4 ~]# systemctl restart rabbitmq-server
    [root@data4 ~]# chmod 400 /var/lib/rabbitmq/.erlang.cookie
    [root@data4 ~]# scp -a /var/lib/rabbitmq/.erlang.cookie root@data5:/var/lib/rabbitmq/
    [root@data4 ~]# scp -a /var/lib/rabbitmq/.erlang.cookie root@data6:/var/lib/rabbitmq/

    将data4作为集群主节点,在节点data5和节点data6上⾯面分别执⾏行行如下命令,以加⼊集群中(--ram 指定内存节点类型,--disc指定磁盘节点类型)

    [root@data5 ~]# rabbitmqctl stop_app
    [root@data5 ~]# rabbitmqctl reset
    [root@data5 ~]# rabbitmqctl join_cluster rabbit@data4 -- 磁盘节点
    
    [root@data6 ~]# rabbitmqctl stop_app
    [root@data6 ~]# rabbitmqctl reset
    [root@data6 ~]# rabbitmqctl join_cluster rabbit@data4 -- 磁盘节点
    

    查看集群状态

    [root@data4 ~]# rabbitmqctl cluster_status
    [root@data5 ~]# rabbitmqctl cluster_status
    [root@data6 ~]# rabbitmqctl cluster_status
    

    设置管理账号

    [root@data4 ~]# rabbitmqctl add_user admin password 
    [root@data4 ~]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
    [root@data4 ~]# rabbitmqctl set_user_tags admin administrator
    

    权限分类,设置各自的项目账号

    aaa 项目账号

    [root@data4 ~]# rabbitmqctl  add_vhost aaa_project
    [root@data4 ~]# rabbitmqctl  add_user aaa  password
    [root@data4 ~]# rabbitmqctl  set_user_tags aaa management
    [root@data4 ~]# rabbitmqctl  set_permissions -p aaa_project aaa '.*' '.*' '.*'
    

    bbb 项目账号

    [root@data4 ~]# rabbitmqctl  add_vhost bbb_project
    [root@data4 ~]# rabbitmqctl  add_user bbb  password
    [root@data4 ~]# rabbitmqctl  set_user_tags bbb management
    [root@data4 ~]# rabbitmqctl  set_permissions -p bbb_project bbb '.*' '.*' '.*'
    

    关于权限控制可以参考这里 https://wangying.sinaapp.com/archives/2277

    删除 guest 账号

    [root@data4 ~]#  rabbitmqctl delete_user guest
    

    设置集群名称(可选)

    [root@data4 ~]# rabbitmqctl set_cluster_name 集群名称
    

    设置镜像队列策略

    [root@data4 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
    

    在 data5 模拟宕机情况

    [root@data5 ~]# rabbitmqctl stop_app
    

    在主节点,强制移除节点

    [root@data4 ~]# rabbitmqctl forget_cluster_node rabbit@data5
    

    主动移除某个节点,在需要移除的某个节点

    [root@data6 ~]# rabbitmqctl stop_app
    [root@data6 ~]#  rabbitmqctl reset
    

    参数优化参考 https://www.cnblogs.com/operationhome/p/10483840.html#13-rabbitmq-envconf

  • 相关阅读:
    久违了,我的博客
    眼前一亮的WI微逸输入法
    致第一次安装(yong)小小输入法的你
    输入法使用体验及引申
    小小输入法使用小记
    RIME-使用小心得
    FreeRTOS run on eclipse
    流行输入法使用小记
    FreeBSD虚拟机——小折腾
    vmware版本选择
  • 原文地址:https://www.cnblogs.com/xietaiyang/p/14977940.html
Copyright © 2011-2022 走看看