• Centos7安装RabbitMQ


    Centos7安装RabbitMQ

    RabbitMQ centos7安装

    rabbitmq需要依赖erlang,下面为版本之间的关系

    rabbitmq版本

    erlang最低版本

    erlang最高版本

    3.9.0 - 3.9.14

    23.2

    24.x

    3.8.16 - 3.8.28

    23.2

    24.x

    3.8.9 - 3.8.15

    22.3

    23.x

    3.8.4 - 3.8.8

    21.3

    23.x

    3.8.0 - 3.8.7

    21.3

    22.x

    如果安装erlang23.3版本,那么可以使用3.8.4-3.9.14的所有版本(有待验证)

    Erlang安装

    1、依赖安装

    yum -y install make gcc gcc-c++ build-essential openssl openssl-devel unixODBC unixODBC-devel kernel-devel m4 ncurses-devel xmlto perl wget gtk2-devel binutils-devel
    
    • 1

    2、下载rabbitmq提供的特殊版erlang

    网址:零依赖Eralng

    #下载后即可直接安装
    rpm -ivh erlang-23.3.4.10-1.el7.x86_64.rpm
    
    • 1
    • 2

    安装后的位置是在/usr/lib64/erlang

    3、测试

    erl
    #将会出现以下结果
    [root@centos ~]# erl
    Erlang/OTP 23 [erts-11.2.2.9] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
    
    Eshell V11.2.2.9  (abort with ^G)
    1> halt().
    [root@centos ~]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4、ERLANG_HOME环境配置

    vim /etc/profile
    
    ERLANG_HOME=/usr/lib64/erlang
    export PATH=$ERLANG_HOME/bin:$PATH
    
    # 刷新
    source /etc/profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    RabbitMQ的安装

    1、依赖安装

    yum install socat logrotate -y
    
    • 1

    2、下载rpm安装包

    此方法安装后,可直接提供开机自启的脚本,推荐这种方式

    网址rabbitmq.rpm安装包下载

    # 可以加入key,也可以忽略
    rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
    #下载后即可直接安装
    rpm -ivh rabbitmq-server-3.8.28-1.el7.noarch.rpm
    
    • 1
    • 2
    • 3
    • 4

    通过该方式安装后会直接创建好/lib/systemd/system/rabbitmq-server.service服务文件

    3、安装后加入开机自启

    # 刷新
    systemctl daemon-reload
    #加入开机自启
    systemctl enable rabbitmq-server.service
    #启动
    systemctl start rabbitmq-server.service
    #查看状态
    systemctl status rabbitmq-server.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4、开启远程管理界面插件

    #开启web管理界面插件
    rabbitmq-plugins enable rabbitmq_management   
    
    • 1
    • 2

    5、创建远程用户

    本身是有一个用户的guest guest,但是只能localhost访问

    #创建账号
    rabbitmqctl add_user admin 123
    #设置用户角色
    rabbitmqctl set_user_tags admin administrator
    #设置用户权限
    set_permissions [-p ]    
    rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
    #用户 user_admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限
    #当前用户和角色
    rabbitmqctl list_users
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    6、常用命令

    # 添加用户
    sudo rabbitmqctl add_user    
    
    # 删除用户
    sudo rabbitmqctl delete_user   
    
    # 修改用户密码
    sudo rabbitmqctl change_password    
    
    # 清除用户密码(该用户将不能使用密码登陆,但是可以通过SASL登陆如果配置了SASL认证)
    sudo rabbitmqctl clear_password  
    
    # 设置用户tags(相当于角色,包含administrator,monitoring,policymaker,management)
    sudo rabbitmqctl set_user_tags  
    
    # 列出所有用户
    sudo rabbitmqctl list_users  
    
    # 创建一个vhosts
    sudo rabbitmqctl add_vhost   
    
    # 删除一个vhosts
    sudo rabbitmqctl delete_vhost   
    
    # 列出vhosts
    sudo rabbitmqctl list_vhosts [ ...]  
    
    # 针对一个vhosts给用户赋予相关权限;
    sudo rabbitmqctl set_permissions [-p ]      
    
    # 清除一个用户对vhosts的权限;
    sudo rabbitmqctl clear_permissions [-p ]   
    
    # 列出哪些用户可以访问该vhosts;
    sudo rabbitmqctl list_permissions [-p ]   
    
    # 列出用户访问权限;
    sudo rabbitmqctl list_user_permissions 
    
    
    #重置
    rm -rf var/lib/rabbitmq/mnesia/
    这个目录,为rabbitmq数据库,有时异常情况出现时,可删除该目录,重新对rabbitmq进行设置即可
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    7、卸载

    #查看安装
    rpm -qa |grep rabbit
    #进行卸载
    rpm -e --nodeps rabbitmq-server-3.8.8-1.el6.noarch
    #查找相关文件及目录,进行删除
    find / -name rabbit*
    rm -rf 依次删除
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    8、启动脚本(使用解压方式安装才会用到,上述安装方式用不到)

    vim /etc/init.d/rabbitmq
    
    #!/bin/sh
    #
    # chkconfig: 2345 80 05
    # description: rabbitmq 
    # processname: rabbitmq
    
    #RabbitMQ安装目录
    #export HOME=/opt/rabbitmq-3.7.9
    
    export PATH=$PATH:/opt/erlang/bin
    export HOME=/opt/rabbitmq-3.7.9
    
    #RABBITMQ_HOME=/opt/rabbitmq-3.7.9
    #export RABBITMQ_HOME
    #export PATH=$PATH:/opt/rabbitmq-3.7.9/sbin
    case "$1" in
      start)
        echo "Starting RabbitMQ ..."
            cd $HOME/sbin
            ./rabbitmq-server -detached
        ;;
      stop)
        echo "Stopping RabbitMQ ..."
            cd $HOME/sbin/
            #/opt/rabbitmq-3.7.9/sbin/rabbitmqctl stop
            ./rabbitmqctl stop
        ;;
      status)
        echo "Status RabbitMQ ..."
            cd $HOME/sbin/
            ./rabbitmqctl status
        ;;
      restart)
        echo "Restarting RabbitMQ ..."
            $0 stop
            $0 start
            #cd $HOME/
            #sbin/rabbitmq-server -detached
        ;;
    
    *)
        echo "Usage: $prog {start|stop|status|restart}"
        ;;
    esac
    exit 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
  • 相关阅读:
    基于springboot+vue共享充电宝管理系统
    多线程进阶(CAS和synchronized原理)
    有什么值得推荐的Java书籍?
    796. 子矩阵的和(二维前缀和)
    [math]判断线段是否相交及夹角
    小H靶场学习笔记:DC-1
    Socket作用及其使用
    Java中的IO流详解(二)
    论文笔记: 极限多标签学习之 FastXML
    【算法刷题 | 贪心算法02】4.24(摆动序列)
  • 原文地址:https://blog.csdn.net/web18484626332/article/details/126326804