zoukankan      html  css  js  c++  java
  • centos7.8环境安装rabbitmq3.8.5最新版并设置集群

    centos7.8环境安装rabbitmq3.8.5最新版并设置集群

    一、编译安装,单机设置
    #1.增加用户
    groupadd rabbitmq
    useradd rabbitmq -g rabbitmq -s /sbin/nologin

    #2.安装必须编译基础包
    yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel

    #3.安装socat
    yum install socat -y
    yum install wxWidgets* -y
    yum install gtk+.x86_64 -y

    #4.环境变量,否则编译erlang可能会有问题
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/libexec/wxGTK3

    #5.下载ERLANG源码包
    wget http://erlang.org/download/otp_src_19.0.tar.gz(可不下载)
    wget https://erlang.org/download/otp_src_22.1.tar.gz
    wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.3/wxWidgets-3.1.3.tar.bz2(可不下载)

    #6.解压并安装(低版本)
    mkdir -p /usr/local/erlang
    tar xvf otp_src_19.0.tar.gz
    cd otp_src_19.0
    ./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac
    make && make install

    #6.解压并安装(高版本)
    mkdir -p /usr/local/erlang
    tar xvf otp_src_22.1.tar.gz
    cd otp_src_22.1
    ./configure --prefix=/usr/local/erlang --with-ssl=/usr/local/lab/openssl --enable-threads --enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac
    make && make install

    #7.解压并安装(由于是通过yum安装,无需执行,如果是编译安装可以按照下面方法)
    bzip2 -d wxWidgets-3.1.3.tar.bz2
    tar xvf wxWidgets-3.1.3.tar
    cd wxWidgets-3.1.3
    ./configure --with-opengl --enable-debug --enable-unicode

    #8.修改环境变量
    vi /etc/profile
    ERLANG_HOME=/usr/local/erlang
    PATH=$ERLANG_HOME/bin:$PATH
    export ERLANG_HOME
    export PATH

    #9.生效环境变量
    source /etc/profile

    #10.测试是否支持ERLANG语言,输入erl后会弹出提示 按CTRL+C 退出
    erl

    #11. 安装simpleJson
    wget https://github.com/simplejson/simplejson/releases/download/v3.16.1/simplejson-3.16.1.tar.gz
    tar zxvf simplejson-3.16.1.tar.gz
    cd simplejson-3.16.1
    python setup.py install

    #12.下载rabbitmq二进制免编译包(最新版本)
    cd /usr/local/src
    wget wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-generic-unix-3.8.5.tar.xz


    #12.下载rabbitmq二进制免编译包
    cd /usr/local/src
    wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-generic-unix-3.6.10.tar.xz

    #13.解压并安装
    xz -d rabbitmq-server-generic-unix-3.8.5.tar.xz
    tar xvf rabbitmq-server-generic-unix-3.8.5.tar
    mv rabbitmq_server-3.8.5 /usr/local
    cd /usr/local/

    rm -f /usr/local/rabbitmq
    ln -s rrabbitmq_server-3.8.5 rabbitmq

    #14.修改/etc/profile文件,添加下面的环境变量:
    export PATH=$PATH:/usr/local/rabbitmq/sbin
    执行source /etc/profile让文件生效。


    #15.设置开启自启脚本
    chown -R rabbitmq.rabbitmq rabbitmq_server-3.8.5

    添加 source /etc/profile 否则可能提示erl无法找到
    vi /usr/local/rabbitmq/sbin/rabbitmq-env
    source /etc/profile

    # 可以先启动程序生成 erlang.cookie 文件

    /usr/local/rabbitmq/sbin/rabbitmq-server

    注意 .erlang.cookie 文件在/home/rabbitmq 下,因通过rabbitmq账户去启动,并且/root/下的 .erlang.cookie值要和/home/rabbitmq 下的文件值保持一致,否则集群无法启动

    # 启动管理程序

    cat /usr/lib/systemd/system/rabbitmq-server.service
    
    [Unit]
    Description=RabbitMQ broker
    After=syslog.target network.target
    
    [Service]
    Type=notify
    User=rabbitmq
    Group=rabbitmq
    UMask=0027
    NotifyAccess=all
    TimeoutStartSec=3600
    
    # To override LimitNOFILE, create the following file:
    #
    # /etc/systemd/system/rabbitmq-server.service.d/limits.conf
    #
    # with the following content:
    #
    # [Service]
    # LimitNOFILE=65536
    
    LimitNOFILE=32768
    
    # Note: systemd on CentOS 7 complains about in-line comments,
    # so only append them here
    #
    # Restart:
    # The following setting will automatically restart RabbitMQ
    # in the event of a failure. systemd service restarts are not a
    # replacement for service monitoring. Please see
    # https://www.rabbitmq.com/monitoring.html
    Restart=on-failure
    RestartSec=10
    WorkingDirectory=/usr/local/rabbitmq/var/lib/rabbitmq
    ExecStart=/usr/local/rabbitmq/sbin/rabbitmq-server
    ExecStop=/usr/local/rabbitmq/sbin/rabbitmqctl shutdown
    # See rabbitmq/rabbitmq-server-release#51
    SuccessExitStatus=69
    
    [Install]
    WantedBy=multi-user.target

    # 无法启动的原因可能是日志使用rabbitmq用户没有权限

    chown -R rabbitmq.rabbitmq /usr/local/rabbitmq_server-3.8.5

    # 查看日志
    /usr/local/rabbitmq/var/log/rabbitmq/rabbit@eus-video-compose02.log
    # cat ~/.erlang.cookie
    QBISJBZGKYVFNASJQWDQ

    # 以下步骤在两个节点中都要执行
    #15.启动rabbitMQ
    systemctl start rabbitmq-server.service

    #15.启动rabbitMQ(可选,但是最好不要这样启动)
    rabbitmq-server

    #15.后台运行服务(可选,但是最好不要这样启动)
    rabbitmq-server -detached

    #16.设置开机自启
    systemctl enable rabbitmq-server.service

    #17.关闭rabbitMQ
    systemctl stop rabbitmq-server.service

    #17.关闭rabbitMQ
    rabbitmqctl stop

    #18.安装web界面扩展
    rabbitmq-plugins enable rabbitmq_management

    #19.添加用户
    rabbitmqctl add_user admin pass

    #20.列出用户
    rabbitmqctl  list_users

    #21.将admin指定为管理员权限
    rabbitmqctl set_user_tags admin administrator

    #22.删除来宾用户
    rabbitmqctl delete_user guest

    #23.安装成功,访问如下地址
    http://192.168.101.21:15672/

    二.加入集群
    #1.修改 /etc/hosts
    # rabbitmq cluster
    172.30.0.1 eus-video-compose01
    172.30.0.2 eus-video-compose02

    #2.设置 Erlang Cookie,路径为/home/rabbitmq/.erlang.cookie,这里将 eus-video-compose01 的该文件复制到 eus-video-compose02,由于这个文件权限是 400,所以需要先修改 eus-video-compose02,中的该文件权限为 777,然后将 node1 中的该文件拷贝到 node2,最后将权限和所属用户/组修改回来
    chown rabbitmq /home/rabbitmq/.erlang.cookie
    chgrp rabbitmq /home/rabbitmq/.erlang.cookie

    也可以直接复制里面的内容,让两台机器的 .erlang.cookie 内容保持一致

    #3.使用 -detached 参数运行各节点
    systemctl stop rabbitmq-server.service  #推荐
    rabbitmqctl stop                        #不推荐

    systemctl start rabbitmq-server.service  #推荐
    rabbitmq-server -detached               #不推荐

    #4.组成集群,注意防火墙开启4637端口,在eus-video-compose01上执行
    rabbitmqctl stop_app
    rabbitmqctl join_cluster rabbit@eus-video-compose02
    [root@eus-video-compose01:~]# rabbitmqctl join_cluster rabbit@eus-video-compose02
    Clustering node rabbit@eus-video-compose01 with rabbit@eus-video-compose02
    rabbitmqctl start_app

    #5.如果要使用内存节点,则可以使用下面的命令加入集群。
    rabbitmqctl join_cluster *--ram* rabbit@rabbitmq_02

    设置镜像集群模式:
    #6.设置镜像队列策略,在任意一个节点上执行下面的命令,将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直
    rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'


    [root@eus-video-compose01:~]# rabbitmqctl list_policies
    Listing policies for vhost "/" ...

    [root@eus-video-compose01:~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
    Setting policy "ha-all" for pattern "^" to "{"ha-mode":"all"}" with priority "0" for vhost "/" ...
    [root@eus-video-compose01:~]# rabbitmqctl list_policies
    Listing policies for vhost "/" ...
    vhost    name    pattern    apply-to    definition    priority
    /    ha-all    ^    all    {"ha-mode":"all"}    0


    [root@eus-video-compose02:/usr/local]# rabbitmqctl list_policies
    Listing policies for vhost "/" ...
    vhost   name    pattern apply-to        definition      priority
    /       ha-all  ^       all     {"ha-mode":"all"}       0



    查看集群状态:
    # rabbitmqctl cluster_status

    命令行下添加rabbitmq用户,没有访问权限,队列没有被消费

    需要在web界面设置一下权限

    修改默认端口

    1.修改rabbitmq的配置,引入修改相关配置的文件 # vim /usr/local/rabbitmq/sbin/rabbitmq-defaults
    # 添加这行
    CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq.conf

    # 添加修改端口的配置
    vim /usr/local/rabbitmq/etc/rabbitmq/rabbitmq.conf
    #数据管理端口(默认端口为5672)
    listeners.tcp.default=5673
    #界面管理端口(默认端口为15672)
    management.tcp.port=15672
    management.tcp.ip=0.0.0.0

  • 相关阅读:
    快速幂 --- CSU 1556: Jerry's trouble
    iOS masonry 不规则tagView布局 并自适应高度
    iOS 渐变色实现,渐变色圆环,圆环进度条
    iOS scrollView中嵌套多个tableView处理方案
    iOS 多网络请求同步并发
    iOS UIView添加阴影
    什么是比特币,什么是区块链,什么是挖矿,为什么要挖?关于比特币,关于区块链,你想要知道的
    Xcode wifi连接真机调试
    iOS 添加WKWebView导致控制器无法释放的问题
    解决百度网盘非会员下载速度限制的完整方案
  • 原文地址:https://www.cnblogs.com/reblue520/p/13231431.html
Copyright © 2011-2022 走看看