• RabbitMq安装过程


    安装Erlong
    RabbitMQ是一个开源的遵循 AMQP协议实现的基于 Erlang语言编写,即需要先安装部署Erlang环境再安装RabbitMQ环境。需加注意的是,根据两者版本号的对应表安装相应版本的Erlang和RabbitMQ。
    1.先下载:http://erlang.org/download/otp_src_20.3.tar.gz
    2.解压:tar -xvf otp_src_20.3.tar.gz
    3.准备环境:yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
    4.进入目录:cd otp_src_20.3
    5.设定安装规则:

    ./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac
    
    • 1

    6.安装:make && make install
    7.配置环境变量:

    vim /etc/profile
    
    添加配置:
    #set erlang environment
    ERL_PATH=/usr/local/erlang/bin
    PATH=$ERL_PATH:$PATH
    
    使配置生效:
    source /etc/profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    8.检验是否安装成功:erl
    在这里插入图片描述
    退出:halt().
    参考博客链接:

    https://blog.csdn.net/ws_kfxd/article/details/85858736
    
    • 1

    安装Socat

    yum install -y socat
    
    • 1

    安装RabbitMQ
    1.通过在线安装或者下载后rpm包后再上传到服务器上

    rpm -Uvh https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm --nodeps
    
    • 1

    如果遇到网络很慢的问题,建议下载rpm包,上传到Linux服务器

    rpm -Uvh rabbitmq-server-3.8.9-1.el7.noarch.rpm --nodeps
    
    • 1

    如果遇到erlang已安装且版本正确,但是RabbitMQ检测失败的情况,可以追加参数 —nodeps (不验证软件包依赖)

    2.启用Rabbit MQ服务

    systemctl enable rabbitmq-server
    
    • 1

    3.启动Rabbit MQ服务

    systemctl start rabbitmq-server
    
    • 1

    查看服务状态

    systemctl status rabbitmq-server
    
    • 1

    在这里插入图片描述
    4.停止服务

    systemctl stop rabbitmq-server
    
    • 1

    5.重启服务

    systemctl restart rabbitmq-server
    
    • 1

    参考博客链接:

    https://blog.csdn.net/qq_39706515/article/details/119972725
    
    • 1

    RabbitMq遇到的问题
    问题1:erlang版本要求
    解决方法:去官网下载要求的版本
    问题2:erlang版本已经下载了要求的版本还是出现问题1的错误
    解决方法:加上–nodeps参数

    [root@localhost ]# rpm -ivh --nodeps rabbitmq-server-3.8.12-1.el7.noarch.rpm 
    
    • 1

    问题3:启动rabbitmq报错

    [root@localhost ]# systemctl start rabbitmq-server
    Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
    
    • 1
    • 2

    解决方法:查看日志

    [root@slave2 rabbitmq]# journalctl -xe
    Feb 19 07:15:52 slave2 systemd[1]: Failed to start RabbitMQ broker.
    -- Subject: Unit rabbitmq-server.service has failed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    -- 
       Unit rabbitmq-server.service has failed.
    -- 
    -- The result is failed.
    Feb 19 07:15:52 slave2 systemd[1]: Unit rabbitmq-server.service entered failed state.
    Feb 19 07:15:52 slave2 systemd[1]: rabbitmq-server.service failed.
    Feb 19 07:16:01 slave2 polkitd[902]: Registered Authentication Agent for unix-process:52647:403980 (system bus name :1.27 [/usr/bin/pk
    Feb 19 07:16:02 slave2 systemd[1]: rabbitmq-server.service holdoff time over, scheduling restart.
    Feb 19 07:16:02 slave2 systemd[1]: Stopped RabbitMQ broker.
    -- Subject: Unit rabbitmq-server.service has finished shutting down
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    -- 
    -- Unit rabbitmq-server.service has finished shutting down.
    Feb 19 07:16:02 slave2 systemd[1]: Starting RabbitMQ broker...
    -- Subject: Unit rabbitmq-server.service has begun start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    -- 
    -- Unit rabbitmq-server.service has begun starting up.
    Feb 19 07:16:02 slave2 rabbitmq-server[52652]: /usr/lib/rabbitmq/bin/rabbitmq-server: line 82: exec: erl: not found
    Feb 19 07:16:02 slave2 systemd[1]: rabbitmq-server.service: main process exited, code=exited, status=127/n/a
    Feb 19 07:16:02 slave2 systemd[1]: Failed to start RabbitMQ broker.
    -- Subject: Unit rabbitmq-server.service has failed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    -- 
    -- Unit rabbitmq-server.service has failed.
    -- 
    -- The result is failed.
    Feb 19 07:16:02 slave2 systemd[1]: Unit rabbitmq-server.service entered failed state.
    Feb 19 07:16:02 slave2 systemd[1]: rabbitmq-server.service failed.
    
    • 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

    发现错误提示,找不到erl环境

    Feb 19 07:16:02 slave2 rabbitmq-server[52652]: /usr/lib/rabbitmq/bin/rabbitmq-server: line 82: exec: erl: not found
    
    • 1

    修改rabbitmq-server启动脚本(启动脚本位置可以在报错日志里面拿到我的是上面报错提示的/usr/lib/rabbitmq/bin/rabbitmq-server)在set -e下面添加两行

    #erlang
    export PATH=$PATH:/usr/local/erlang/bin
    
    • 1
    • 2

    这一步是配置erlang的环境变量 和安装erlang第七步相同。

    [root@slave2 rabbitmq]# vim /usr/lib/rabbitmq/bin/rabbitmq-server 
    #!/bin/sh
    # vim:sw=4:et:
    ##  The contents of this file are subject to the Mozilla Public License
    ##  Version 1.1 (the "License"); you may not use this file except in
    ##  compliance with the License. You may obtain a copy of the License
    ##  at https://www.mozilla.org/MPL/
    ##
    ##  Software distributed under the License is distributed on an "AS IS"
    ##  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
    ##  the License for the specific language governing rights and
    ##  limitations under the License.
    ##
    ##  The Original Code is RabbitMQ.
    ##
    ##  The Initial Developer of the Original Code is GoPivotal, Inc.
    ##  Copyright (c) 2007-2021 VMware, Inc. or its affiliates.  All rights reserved.
    ##
    
    set -e
    #erlang
    export PATH=$PATH:/usr/local/erlang/bin
    # Get default settings with user overrides for (RABBITMQ_)
    # Non-empty defaults should be set in rabbitmq-env
    SCRIPTS_DIR=$(dirname "$0")
    . "$SCRIPTS_DIR/rabbitmq-env"
    
    [ "$NOTIFY_SOCKET" ] && RUNNING_UNDER_SYSTEMD=true
    
    RABBITMQ_DEFAULT_ALLOC_ARGS="+MBas ageffcbf +MHas ageffcbf +MBlmbcs 512 +MHlmbcs 512 +MMmcs 30"
    
    # Bump ETS table limit to 50000
    if [ "x" = "x$ERL_MAX_ETS_TABLES" ]; then
        ERL_MAX_ETS_TABLES=50000
    fi
    
    check_start_params() {
        check_not_empty RABBITMQ_BOOT_MODULE
    
    • 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

    参考博客链接:

    https://blog.csdn.net/weixin_43914685/article/details/113871672
    
    • 1

    因为安装时我遇到的错误是:
    在这里插入图片描述
    查看日志后的信息为:
    在这里插入图片描述
    因此解决方案是修改rabbitmq-server启动脚本。

    当然也看到一些错误原因是是未设置host配置引起的:
    host文件并未配置,mq服务要启动,需要对应的ip和主机名映射。

    [root@xxxx /]# vim /etc/hosts
    
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.38.110 xxxx
    
    • 1
    • 2
    • 3
    • 4
    • 5

    获取主机名和ip:

    [root@xxxx /]# hostname
    xxxx
    [root@xxxx /]# ifconfig
    
    • 1
    • 2
    • 3

    访问
    guest用户默认只可以localhost(本机)访问
    因此:
    在rabbitmq的配置文件目录下(默认为:/etc/rabbitmq)创建一个rabbitmq.config文件。文件中添加如下配置(请不要忘记那个“.”):

    [{rabbit, [{loopback_users, []}]}].
    
    • 1

    重启rabbitmq服务

    systemctl restart rabbitmq-server
    
    • 1

    如果仍不能用主机浏览器访问,可能需要关闭虚拟机的防火墙。

    查看状态:systemctl status firewalld
    关闭: systemctl stop firewalld
    
    • 1
    • 2

    参考博客链接:

    https://www.cnblogs.com/qstudy/p/Linux.html
    
    • 1
  • 相关阅读:
    互联网热门词汇:媒体以及大牛们口中常说的各种X2X指的是什么
    Odoo 15开发手册第九章 外部 API - 集成第三方系统
    uniapp或者vue项目环境变量的模式来自动替换网络请求的baseUrl
    flutter获取字符串和json或者map的md5值
    Nginx: Rewrite功能配置/Nginx反向代理/Nginx的安全控制SSL
    来看看火爆全网的ChatGPT机器人写的武侠小说,我直呼内行!
    应力奇异,你是一个神奇的应力!
    基于VGG16的猫狗数据集分类
    【Hack The Box】linux练习-- Nineveh
    c++征途 --- 函数
  • 原文地址:https://blog.csdn.net/m0_67393413/article/details/126485317