RabbitMQ 在 CentOS 8 上的曲折安装之旅:从坑中爬起,终成高手!20241104

RabbitMQ 在 CentOS 8 上的曲折安装之旅:从坑中爬起,终成高手!

引言

安装 RabbitMQ 是一项开发者常见但可能充满挑战的任务,尤其是在 CentOS 8 上,当版本兼容性、路径管理和服务配置混杂在一起时,可能会令人抓狂。但在这篇技术博客中,我将分享我的“坎坷” RabbitMQ 安装之旅,并提供实战经验和实用技巧,帮助您顺利穿越这个迷宫。无论您是新手还是资深工程师,希望这篇文章都能给您一些启发和帮助。

1. 安装前的准备:路径管理与依赖关系的挑战

Erlang 是 RabbitMQ 的基础依赖,选择与 RabbitMQ 版本兼容的 Erlang 版本是成功的第一步。这里有一些关键点:

  • 兼容性问题:RabbitMQ 对 Erlang 的版本有严格要求。官方发布说明通常会列出兼容版本,但我的建议是尽量使用最新的
    Erlang 和 RabbitMQ 版本,以减少兼容性问题。
  • 安装前清理:务必确保您的系统环境干净,特别是在已经有其他版本的 Erlang 或 RabbitMQ 残留时。使用以下命令来彻底清理:
sudo dnf remove -y erlang rabbitmq-server
sudo rm -rf /usr/lib/erlang /usr/lib64/erlang

2. 安装 Erlang:版本选择与路径管理

2.1. 下载并安装 Erlang:从 Erlang Solutions 网站获取最新的 RPM 包并安装:

wget https://binaries2.erlang-solutions.com/rockylinux/esl-erlang-26/esl-erlang_26.2.4_1~centos~8_x86_64.rpm
sudo rpm -Uvh esl-erlang_26.2.4_1~centos~8_x86_64.rpm

2.2 确认安装路径:使用 rpm -ql esl-erlang 来列出安装文件,确保 Erlang 安装在 /usr/lib64/erlang,并更新环境变量:

export PATH=/usr/lib64/erlang/bin:$PATH
source ~/.bashrc

重要提示:erl -version 可能不会正确显示版本,建议通过 /usr/lib64/erlang/bin/erl version 确认版本信息。

3. 安装 RabbitMQ:从仓库到配置

3.1 添加 RabbitMQ 仓库并安装:

sudo dnf install -y epel-release
sudo dnf install -y https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/8/rabbitmq-server-3.13.7-1.el8.noarch.rpm

3.2 启动并启用 RabbitMQ 服务:

sudo systemctl enable rabbitmq-server
sudo systemctl start rabbitmq-server
sudo systemctl status rabbitmq-server

4. 启用管理插件:让管理更简单

RabbitMQ 提供了强大的 Web 管理界面,通过启用 rabbitmq_management 插件来访问:

sudo rabbitmq-plugins enable rabbitmq_management
sudo systemctl restart rabbitmq-server

访问管理界面:打开浏览器并访问 http://:15672。如果遇到访问问题,请继续阅读。

5. 防火墙与网络设置:开放端口,畅通无阻

如果您无法访问管理界面,可能是防火墙阻止了连接。以下是配置防火墙的方法:

5.1 启动并配置 Firewalld:

sudo systemctl start firewalld
sudo systemctl enable firewalld

5.2 开放必要端口:

sudo firewall-cmd --permanent --add-port=15672/tcp
sudo firewall-cmd --permanent --add-port=5672/tcp
sudo firewall-cmd --reload

5.3 验证端口是否开放:

sudo firewall-cmd --list-all

6. 解决远程登录限制:创建新用户

RabbitMQ 默认不允许 guest 用户从远程访问。解决方案是创建一个新用户并赋予权限:

6.1 创建新用户:

sudo rabbitmqctl add_user myuser mypassword
sudo rabbitmqctl set_user_tags myuser administrator
sudo rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"

6.2 使用新用户登录:在管理界面中使用 myuser 和 mypassword 登录。

7. 最佳实践与常见问题

•	检查端口监听:使用 sudo ss -tln | grep 15672 确认 RabbitMQ 是否监听端口。
•	重启系统:有时,环境变量和路径配置需要重启系统才能生效:
sudo reboot
•	日志分析:如果遇到问题,查看 /var/log/rabbitmq 目录下的日志文件,可以帮助您排查问题。

总结

RabbitMQ 的安装在 CentOS 8 上可能充满挑战,但通过清晰的步骤和详细的排查,您可以顺利完成配置。关键是理解路径管理、依赖关系和网络设置。希望这篇博客能为您提供实用的技巧和专业见解,让您在未来轻松应对类似的挑战。

祝您在使用 RabbitMQ 的路上顺风顺水!如果有更多问题或见解,欢迎在评论区分享!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/2466.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Spring5学习记录(四)声明式事务管理

Spring5学习记录(四)声明式事务管理 一、事务管理1、事务四个特性ACID2、事务的两种方式 二、基于注解实现声明式事务管理1、配置xml文件2、添加事务注解 Transactional 三、声明式事务管理的参数配置1、propagation:事务传播行为2、isolat…

Linux上python离线安装教程

一. 安装Python 1. 下载python离线包 安装包下载地址:https://www.python.org/downloads/source/ 我下载的是Python 3.10.14 下面是linux服务器上的部署过程 2. 系统更新 sudo yum update -y 3. 安装必要的依赖项 sudo yum groupinstall “Development Tools” -y…

快速入门CSS

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗 如有错误,欢迎指出~ 目录 CSS css的三种引入方式 css书写规范 选择器分类 标签选择器 class选择器 id选择器 复合选择器 通配符选择器 color颜色设置 border边框设置 width/heigth 内/外边距 C…

ssm基于vue搭建的新闻网站+vue

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 [2 系统…

MATLAB计算朗格朗日函数

1. 朗格朗日函数介绍 朗格朗日函数(Lagrange function)通常用于优化问题,尤其是带有约束的优化问题。其一般形式为: 其中: f(x) 是目标函数。 是约束条件。 是拉格朗日乘子。 为了编写一个MATLAB代码来计算和绘制…

商场应急响应:SpringBoot技术优化

3系统分析 3.1可行性分析 通过对本大型商场应急预案管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本大型商场应急预案管理系统采用SSM框架&#xff0…

WebSocket的理解与应用

WebSocket的理解与应用 一、是什么二、特点1、全双工2、二进制帧3、协议名4、握手5、优点 三、应用场景 一、是什么 WebSocket,是一种网络传输协议,位于OSI模型的应用层。可在单个TCP连接上进行全双工通信,能更好的节省服务器资源和带宽并达…

【C++ 算法进阶】算法提升八

复杂计算 (括号问题相关递归套路 重要) 题目 给定一个字符串str str表示一个公式 公式里面可能有整数 - * / 符号以及左右括号 返回最终计算的结果 题目分析 本题的难点主要在于可能会有很多的括号 而我们直接模拟现实中的算法的话code会难写 要考虑…

Node学习记录-until实用工具

来源:Nodejs 第十八章(util) util 是Node.js内部提供的很多实用或者工具类型的API util.promisify 用于将遵循Node回调风格(即最后一个参数为回调函数)的函数转换成返回Promise的函数,这样可以使得异步代…

Vue生命周期

Vue生命周期:Vue实例从创建到销毁的过程,即指从创建、初始化数据、编译模板、挂载DOM到渲染、更新到渲染、销毁等一系列过程。主要分为创建前后、载入前后、更新前后、销毁前后以及一些特殊场景的生命周期。 …

注意力机制的目的:理解语义;编码器嵌入高纬空间计算;注意力得分“得到S*V”;解码器掩码和交叉注意力层用于训练;最终的编码器和输出实现大模型

目录 注意力机制的目的:理解语义中的它是小白兔 词编码器嵌入高纬空间 计算注意力得分“得到S*V” 权重QKV:连接权重 训练阶段使用解码器:翻译后的语句 解码器掩码和交叉注意力层用于训练 最终的编码器和输出实现大模型 Transformer模型中,QKV QKV的作用 举例说明…

鸿蒙5.0时代:原生鸿蒙应用市场引领开发者服务新篇章

前言 10月22日原生鸿蒙之夜发布会宣布HarmonyOS NEXT正式发布,首个版本号:鸿蒙5.0。这次“纯血鸿蒙”脱离了底层安卓架构成为纯国产的独立系统,仅凭这一点就有很多想象空间。 目前鸿蒙生态设备已超10亿,原生鸿蒙操作系统在中国市…

联动香港、成都、武汉三所高校!“2024 深圳国际金融科技大赛”校园行圆满结束

在金融科技蓬勃发展的当下,人才培养成为推动行业前行的关键。为推进深圳市金融科技人才高地建设,向高校学子提供一个展示自身知识、能力和创意的平台,2024 FinTechathon 深圳国际金融科技大赛——西丽湖金融科技大学生挑战赛重磅开启&#xf…

【真题笔记】16年系统架构设计师要点总结

【真题笔记】16年系统架构设计师要点总结 存储部件接口嵌入式处理器产品配置配置管理用户文档系统文档CMM(能力成熟度模型)螺旋模型敏捷软件开发的方法学软件工具面向对象的分析模型设计模型COP(面向构件的编程)构件原子构件模块S…

【力扣打卡系列】二分查找(红蓝染色法)

坚持按题型打卡&刷&梳理力扣算法题系列&#xff0c;语言为go&#xff0c;Day8 在排序数组中查找元素的第一个和最后一个位置 题目描述解题思路 二分查找 注意勿漏循环&#xff0c;条件为left < right注意比较的是nums[mid]与target的值&#xff0c;不是mid注意if s…

NGINX 交叉编译 arm32

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

openstack之guardian介绍与实例创建过程

运行特征 采集模块&#xff1a;扩展Ceilometer&#xff0c;采集存储网、业务网连通性、nova目录是否可读写&#xff1b; 收集模块&#xff1a;将采集到的数据存储到数据库中&#xff1b; 分析模块&#xff1a;根据采集的结果&#xff0c;分析各节点状态&#xff0c;并进行反向检…

操作集成、数据集成、界面集成-系统架构师(八十八)

1软件开发环境由软件工具集和环境集成机制构成&#xff0c;前者支持软件活动的过程和任务&#xff0c;后者提供统一数据模式和数据接口规范的数据集成机制&#xff0c;支持个各开发活动之间通信、切换、调度和协同的&#xff08;&#xff09;。 A 操作集成机制 B 控制集成机制…

项目经理必看:PMP证书值不值得考?一文了解真相!

大部分人对“PMP证书”这个词语可能有点陌生&#xff0c;但很多想从事于项目管理或带团队当领导的人对此还是比较熟悉的。 PMP是由美国项目管理协会发起的&#xff0c;严格评估项目管理人员知识技能是否具有高品质的资格认证考试&#xff0c;1999年由我国国家外国专家局引进&am…

空元组同一空间,空列表不是同一空间print(a is b, c is d)

1. 在Python&#xff08;Python的官方实现&#xff09;中&#xff0c;对于小整数有一个整数缓存机制&#xff1a; - 整数对象在 -5到256&#xff08;包含 -5和256&#xff09;之间是被缓存的。这意味着在这个范围内的整数&#xff0c;当你在代码中多次使用相同的值创建整数对象…