RabbitMQ 开机启动配置教程

RabbitMQ 开机启动配置教程

在本教程中,我们将详细介绍如何配置 RabbitMQ 以实现开机自动启动。此配置适用于手动安装的 RabbitMQ 版本。

环境准备

  • 操作系统:CentOS 7
  • RabbitMQ 版本:3.8.4
  • Erlang 版本:21.3

步骤

1. 安装 Erlang

  1. 安装依赖

    bash 复制代码
    sudo yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget socat
  2. 下载 Erlang

    bash 复制代码
    wget http://erlang.org/download/otp_src_21.3.tar.gz
  3. 解压并编译安装

    bash 复制代码
    tar -xvf otp_src_21.3.tar.gz
    cd otp_src_21.3
    ./configure --prefix=/usr/local/erlang
    make && make install
  4. 配置环境变量

    编辑 /etc/profile 文件,添加以下内容:

    bash 复制代码
    export PATH=$PATH:/usr/local/erlang/bin

    使配置生效:

    bash 复制代码
    source /etc/profile
  5. 验证安装

    bash 复制代码
    erl -version

2. 安装 RabbitMQ

  1. 下载 RabbitMQ

    bash 复制代码
    wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.4/rabbitmq-server-generic-unix-3.8.4.tar.xz
  2. 解压

    bash 复制代码
    xz -d rabbitmq-server-generic-unix-3.8.4.tar.xz
    tar -xvf rabbitmq-server-generic-unix-3.8.4.tar
  3. 配置环境变量

    编辑 /etc/profile 文件,添加以下内容:

    bash 复制代码
    export PATH=$PATH:/usr/local/rabbitmq_server-3.8.4/sbin

    使配置生效:

    bash 复制代码
    source /etc/profile

3. 配置 RabbitMQ 环境文件

  1. 编辑 rabbitmq-env 文件

    bash 复制代码
    sudo vi /usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmq-env
  2. 添加 Erlang 路径

    在文件中添加 Erlang 的路径:

    bash 复制代码
    export PATH=$PATH:/usr/local/erlang/bin

4. 创建 RabbitMQ 服务文件

  1. 创建服务文件

    bash 复制代码
    sudo vi /etc/systemd/system/rabbitmq.service
  2. 添加以下内容

    ini 复制代码
    [Unit]
    Description=RabbitMQ Server
    Documentation=https://www.rabbitmq.com/docs.html
    After=network.target
    
    [Service]
    Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/erlang/bin"
    User=rabbitmq
    Group=rabbitmq
    Type=notify
    ExecStart=/usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmq-server
    ExecStop=/usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmqctl stop
    Restart=on-failure
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target

5. 配置开机启动

  1. 加载服务文件

    bash 复制代码
    sudo systemctl daemon-reload
  2. 启用开机启动

    bash 复制代码
    sudo systemctl enable rabbitmq.service
  3. 立即启动服务

    bash 复制代码
    sudo systemctl start rabbitmq.service
  4. 查看服务状态

    bash 复制代码
    sudo systemctl status rabbitmq.service

6. 验证配置

  1. 验证 RabbitMQ 状态

    bash 复制代码
    sudo /usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmqctl status
  2. 验证管理插件

    bash 复制代码
    sudo /usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmq-plugins enable rabbitmq_management
  3. 访问管理界面

    通过浏览器访问 http://<服务器IP>:15672,使用管理员账户登录。

7. 查看服务日志

如果服务启动失败,可以使用以下命令查看详细日志:

bash 复制代码
journalctl -u rabbitmq.service -l

此命令将显示 RabbitMQ 服务的详细日志,帮助你排查问题。

8. 检查端口冲突和防火墙设置

  1. 检查端口占用

    确保 RabbitMQ 使用的端口(默认是 567215672)未被其他服务占用:

    bash 复制代码
    sudo netstat -tuln | grep 5672
    sudo netstat -tuln | grep 15672
  2. 查看占用端口的进程

    如果发现端口被占用,可以使用以下命令找出占用端口的进程:

    bash 复制代码
    sudo lsof -i :5672
    sudo lsof -i :15672
  3. 停止占用端口的进程

    如果确认该进程不是必需的,可以停止它:

    bash 复制代码
    sudo kill -9 <PID>

    替换 <PID> 为实际的进程 ID。

  4. 配置防火墙

    确保防火墙允许访问 RabbitMQ 的端口:

    bash 复制代码
    sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
    sudo firewall-cmd --reload

注意事项

  • 用户和组 :确保创建了 rabbitmq 用户和组,并且服务文件中指定的用户和组存在。
  • 权限:确保 RabbitMQ 的安装目录和文件有正确的权限。
  • 防火墙设置 :确保防火墙允许访问 RabbitMQ 的端口(默认是 567215672)。

通过以上步骤,您可以成功配置 RabbitMQ 开机自动启动,并能够有效地管理和排查服务问题。

相关推荐
小小怪KO3 小时前
分布式锁解决集群下一人一单超卖问题
java·分布式·tomcat·后端开发·实习·黑马点评
失散134 小时前
分布式专题——9 Redis7底层数据结构解析
java·数据结构·redis·分布式·缓存·架构
程序员TNT4 小时前
Shoptnt 安全架构揭秘:JWT 认证与分布式实时踢人方案
java·redis·分布式·架构
文人sec4 小时前
性能测试-jmeter10-分布式测试
分布式·jmeter·性能优化·模块测试
ByteBlossom7 小时前
深入解析ZooKeeper核心机制与应用(下)
分布式·zookeeper
蒋星熠8 小时前
中间件架构设计与实践:构建高性能分布式系统的核心基石
开发语言·数据库·分布式·python·中间件·性能优化·硬件工程
在未来等你12 小时前
Elasticsearch面试精讲 Day 13:索引生命周期管理ILM
大数据·分布式·elasticsearch·搜索引擎·面试
roman_日积跬步-终至千里17 小时前
【系统架构设计(24)】大型网站系统架构演化:从单体到分布式的技术进阶之路
分布式·系统架构
Luminbox紫创测控19 小时前
稳态太阳光模拟器 | 多源分布式设计的要点有哪些?
分布式
WHFENGHE1 天前
输电线路分布式故障监测装置技术解析
分布式