RabbitMQ Linux 安装教程详解

RabbitMQ Linux 安装教程详解

在 Linux 系统上安装 RabbitMQ 并确保其稳定运行,对于构建可靠的分布式消息系统至关重要。本文将详细介绍如何在 Linux 系统上安装 RabbitMQ,并提供关键的注意事项,帮助您避免常见的坑点,确保安装过程顺利。

一、环境准备

  1. 确认系统版本 :确保您的 Linux 系统为 CentOS 7 或 Ubuntu 18.04 及以上版本。

  2. 更新系统包 :执行以下命令更新系统包:

    • 在 CentOS 上:sudo yum update
    • 在 Ubuntu 上:sudo apt-get update
  3. 安装依赖工具 :安装一些必要的工具和库:

    • 在 CentOS 上:sudo yum install -y wget curl
    • 在 Ubuntu 上:sudo apt-get install -y wget curl

二、安装 Erlang

RabbitMQ 基于 Erlang 语言开发,因此需要先安装 Erlang。

(一)在 CentOS 上安装 Erlang

  1. 添加 Erlang Solutions 仓库
bash 复制代码
sudo wget https://packages.erlang-solutions.com/erlang Solutions/signing-key.pub
sudo rpm -import signing-key.pub
sudo wget https://packages.erlang-solutions.com/erlang-solutions-epel-2.el7.noarch.rpm
sudo rpm -Uvh erlang-solutions-epel-2.el7.noarch.rpm
  1. 安装 Erlang
bash 复制代码
sudo yum install -y esl-erlang

(二)在 Ubuntu 上安装 Erlang

  1. 添加 Erlang Solutions 仓库
bash 复制代码
sudo curl -fsSL https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo gpg --dearmor -o /usr/share/keyrings/erlang-solutions-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/erlang-solutions-archive-keyring.gpg] https://packages.erlang-solutions.com/ubuntu $(lsb_release -sc) contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list
sudo apt-get update
  1. 安装 Erlang
bash 复制代码
sudo apt-get install -y esl-erlang

三、安装 RabbitMQ

(一)在 CentOS 上安装 RabbitMQ

  1. 添加 RabbitMQ 仓库
bash 复制代码
sudo wget https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sudo rpm --import rabbitmq-release-signing-key.asc
sudo wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.11.16/rabbitmq-server-3.11.16-1.el8.x86_64.rpm
sudo rpm -ivh rabbitmq-server-3.11.16-1.el8.x86_64.rpm
  1. 安装 RabbitMQ
bash 复制代码
sudo yum install -y rabbitmq-server

(二)在 Ubuntu 上安装 RabbitMQ

  1. 添加 RabbitMQ 仓库
bash 复制代码
sudo apt-get install -y apt-transport-https
sudo curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/rabbitmq-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/rabbitmq-archive-keyring.gpg] https://dl.bintray.com/rabbitmq-gh/rabbitmq-server/debian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
sudo apt-get update
  1. 安装 RabbitMQ
bash 复制代码
sudo apt-get install -y rabbitmq-server

四、配置 RabbitMQ 服务

  1. 启动 RabbitMQ 服务
bash 复制代码
sudo systemctl start rabbitmq-server
  1. 设置开机自启
bash 复制代码
sudo systemctl enable rabbitmq-server
  1. 查看服务状态
bash 复制代码
sudo systemctl status rabbitmq-server

五、启用管理插件

  1. 启用管理插件
bash 复制代码
sudo rabbitmq-plugins enable rabbitmq_management
  1. 开放防火墙端口
bash 复制代码
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent
sudo firewall-cmd --reload

六、创建用户及配置权限

  1. 创建用户
bash 复制代码
sudo rabbitmqctl add_user admin admin123
  1. 设置用户标签
bash 复制代码
sudo rabbitmqctl set_user_tags admin administrator
  1. 配置用户权限
bash 复制代码
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

七、访问管理界面

打开浏览器,输入 http://<服务器 IP 地址>:15672 访问 RabbitMQ 的管理界面,使用刚才创建的 "admin" 用户登录。

八、注意事项

  1. 端口占用问题 :若启动 RabbitMQ 时报错 "ERROR: distribution port 25672 in use by rabbit@localhost",可使用以下命令查找并停止占用端口的进程:
bash 复制代码
sudo ss -tulnp | grep 25672
sudo kill -9 <进程 ID>
  1. 依赖库问题 :若安装 Erlang 时报错 "No curses library functions found",需安装 ncurses-devel 库:
bash 复制代码
sudo yum install ncurses-devel
  1. 防火墙设置 :确保防火墙允许访问 RabbitMQ 的相关端口(15672 和 5672)。

  2. 用户权限 :创建新用户并分配适当权限,避免使用默认的 guest 用户进行远程访问。

九、总结

通过以上步骤,您可以在 Linux 系统上成功安装并配置 RabbitMQ,并采取相应的注意事项来避免常见问题。希望本文对您有所帮助,如果您在安装过程中遇到任何问题,欢迎随时联系。

以上内容为您提供了一个简洁且详细的 RabbitMQ 安装教程,帮助您在 Linux 系统上顺利完成安装并配置 RabbitMQ,确保其稳定运行。

相关推荐
搞不懂语言的程序员20 分钟前
如何保证 Kafka 数据实时同步到 Elasticsearch?
分布式·elasticsearch·kafka
知北游天1 小时前
Linux:再谈进程地址空间
android·linux·运维
liulilittle1 小时前
yum 报错误提示:yum-config-manager --disable <repoid>
linux·服务器·centos
Johny_Zhao2 小时前
Nmap 从入门到精通:详细指南
linux·网络·网络安全·信息安全·云计算·shell·nmap·yum源·系统运维·itsm
huan_19933 小时前
通过shell脚本检测服务是否存活并进行邮件的通知
linux·运维·linux运维·服务宕机通知·shell运维脚本
李景琰3 小时前
分布式事务之Seata
java·分布式
egoist20233 小时前
【Linux仓库】权限的量子纠缠:用户/组/other如何编织Linux访问控制网?
linux·运维·服务器·编辑器·权限·文件权限
大春儿的试验田4 小时前
Linux性能监控工具nmon
linux·压力测试
MZWeiei4 小时前
Spark 中,创建 DataFrame 的方式(Scala语言)
大数据·分布式·spark·scala