HCRM博客

在 CentOS 上成功编译安装 RabbitMQ 的指南

在众多消息队列中间件中,RabbitMQ凭借其成熟、稳定和强大的功能,成为了许多开发者和企业的首选,对于希望在CentOS系统上追求更高灵活性和控制力的用户而言,通过编译安装的方式部署RabbitMQ,能更好地契合特定的环境需求,下面,我们将一步步完成在CentOS系统上从源码编译安装RabbitMQ的全过程。

在 CentOS 上成功编译安装 RabbitMQ 的指南-图1

准备工作:搭建编译环境

在开始之前,一个纯净且准备就绪的系统环境是成功编译的基石,请确保您已具备一个CentOS 7或8的服务器环境,并拥有root或具备sudo权限的账户。

我们需要安装一系列必要的开发工具和依赖库,打开终端,执行以下命令:

# 更新系统软件包
sudo yum update -y
# 安装基础开发工具组、编译器等
sudo yum groupinstall "Development Tools" -y
# 安装RabbitMQ编译所必需的依赖,如OpenSSL、ncurses-devel等
sudo yum install -y openssl-devel ncurses-devel unixODBC-devel python3 socat logrotate

这些软件包提供了编译过程所需的编译器(如gcc、gcc-c++)、链接库以及后续运行Erlang/OTP和RabbitMQ的关键依赖。

第一步:编译安装Erlang/OTP

RabbitMQ是基于Erlang语言编写的,因此我们必须先安装一个合适版本的Erlang运行时,直接从源码编译Erlang能确保我们获得与系统高度兼容的版本。

  1. 访问Erlang官网,查找并确定与您计划安装的RabbitMQ版本相兼容的Erlang/OTP版本,我们以OTP 25.x为例。
  2. 下载并解压源码包
    # 下载Erlang/OTP源码包(请替换为确切的版本链接)
    wget https://github.com/erlang/otp/releases/download/OTP-25.3.2.5/otp_src_25.3.2.5.tar.gz
    # 解压
    tar -zxvf otp_src_25.3.2.5.tar.gz
    cd otp_src_25.3.2.5
  3. 配置、编译并安装
    # 配置编译选项,指定安装路径为/usr/local/erlang
    ./configure --prefix=/usr/local/erlang
    # 使用多核并行编译以加快速度,数字4可根据您的CPU核心数调整
    make -j4
    # 安装到系统
    sudo make install
  4. 配置环境变量:为了让系统找到Erlang可执行文件,需要将其路径加入环境变量。
    # 编辑profile文件
    sudo vi /etc/profile

    在文件末尾添加:

    export ERLANG_HOME=/usr/local/erlang
    export PATH=$ERLANG_HOME/bin:$PATH

    保存退出后,执行 source /etc/profile 使配置立即生效,通过运行 erl -version 来验证Erlang是否安装成功。

第二步:编译安装RabbitMQ Server

完成Erlang的部署后,我们就可以开始编译RabbitMQ本身了。

在 CentOS 上成功编译安装 RabbitMQ 的指南-图2

  1. 获取RabbitMQ源码: 访问 RabbitMQ 的 GitHub Release 页面,找到您需要的版本,我们以 v3.12.6 为例。

    # 下载RabbitMQ源码
    wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.12.6/rabbitmq-server-generic-unix-3.12.6.tar.xz
    # 解压(注意,这是预编译的通用Unix包,但我们需确保其与我们的Erlang环境兼容)
    tar -xf rabbitmq-server-generic-unix-3.12.6.tar.xz
    sudo mv rabbitmq_server-3.12.6 /usr/local/rabbitmq

    在实际的纯编译安装场景中,您可能需要从包含.tar.xz源码的包进行编译,但官方提供的通用Unix包实际上是一个已经编译好的、包含所需BEAM文件的发行版,它极大地简化了安装过程,同时依然要求与您自编译的Erlang环境兼容,对于绝大多数生产需求,使用此通用包是更推荐且稳定的做法,如果您坚持从更原始的源码(如Git仓库)编译,过程会更为复杂,涉及make等步骤。

  2. 配置环境变量: 同样,将RabbitMQ的sbin目录加入PATH。

    sudo vi /etc/profile

    添加:

    export RABBITMQ_HOME=/usr/local/rabbitmq
    export PATH=$RABBITMQ_HOME/sbin:$PATH

    保存并 source /etc/profile

第三步:配置与优化

  1. 创建配置文件: RabbitMQ的配置通常存放在 /etc/rabbitmq/ 目录。

    sudo mkdir -p /etc/rabbitmq
    sudo vi /etc/rabbitmq/rabbitmq.conf

    您可以根据需要添加配置项,例如设置默认用户(不建议在生产环境使用):

    # 允许默认guest用户从远程连接(仅用于测试)
    loopback_users = none
    # 定义节点名称
    NODENAME=rabbit@localhost
  2. 设置Erlang Cookie: RabbitMQ节点间通信依赖于一个相同的Erlang Cookie,这个文件需要严格的权限控制。

    # 创建.erlang.cookie文件并设置权限
    sudo vi /var/lib/rabbitmq/.erlang.cookie
    # 输入一个长字符串作为cookie,MY_SECRET_COOKIE_VALUE
    sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
    sudo chmod 600 /var/lib/rabbitmq/.erlang.cookie

    注意:您可能需要先创建rabbitmq用户和组,或者直接使用一个现有用户,为了安全,建议专门为RabbitMQ创建一个系统用户。

    在 CentOS 上成功编译安装 RabbitMQ 的指南-图3

    sudo groupadd rabbitmq
    sudo useradd -g rabbitmq -s /bin/false -d /var/lib/rabbitmq rabbitmq
    sudo chown -R rabbitmq:rabbitmq /usr/local/rabbitmq/
    sudo chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/

第四步:管理服务与验证

  1. 启动RabbitMQ: 以后台守护进程方式启动:

    sudo -u rabbitmq rabbitmq-server -detached
  2. 启用管理插件: RabbitMQ提供了一个功能强大的Web管理界面。

    sudo -u rabbitmq rabbitmq-plugins enable rabbitmq_management
  3. 检查状态

    sudo -u rabbitmq rabbitmqctl status

    如果一切正常,您将看到关于RabbitMQ节点运行状态的详细信息。

  4. 访问管理界面: 在浏览器中访问 http://您的服务器IP:15672,使用默认用户名 guest 和密码 guest 登录(如果之前配置允许了远程访问)。强烈建议在首次登录后立即更改密码或创建新的管理员用户并禁用guest账户。

  5. 配置系统服务(可选但推荐): 为了便于管理,可以创建一个systemd服务文件。

    sudo vi /etc/systemd/system/rabbitmq.service
    ```示例:
    ```ini
    [Unit]
    Description=RabbitMQ Messaging Server
    After=network.target
    [Service]
    Type=forking
    User=rabbitmq
    Group=rabbitmq
    Environment="HOME=/var/lib/rabbitmq"
    ExecStart=/usr/local/rabbitmq/sbin/rabbitmq-server -detached
    ExecStop=/usr/local/rabbitmq/sbin/rabbitmqctl shutdown
    Restart=on-failure
    RestartSec=10
    [Install]
    WantedBy=multi-user.target

    然后执行:

    sudo systemctl daemon-reload
    sudo systemctl enable rabbitmq
    sudo systemctl start rabbitmq

通过编译安装,您不仅获得了一个与您的CentOS系统深度契合的RabbitMQ服务,还在过程中加深了对这款消息中间件依赖关系的理解,这种方式赋予了管理员在版本选择、功能定制和性能调优上更大的自主权,虽然步骤相较于包管理器安装更为繁琐,但对于追求极致稳定性和可控性的生产环境而言,这份投入是值得的,后续的维护工作,包括日志查看(通常在 /usr/local/rabbitmq/var/log/rabbitmq)、插件管理以及集群配置,都将基于这个稳固的基础上展开。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/52307.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~