rabbitmq消息队列centos如何使用
导读:在 CentOS 上使用 RabbitMQ 的完整步骤 一 环境准备与安装 准备系统并安装依赖(以 CentOS 7/8 为例,使用 yum 包管理器): 安装 EPEL 仓库与必要工具:sudo yum install -y epel...
在 CentOS 上使用 RabbitMQ 的完整步骤
一 环境准备与安装
- 准备系统并安装依赖(以 CentOS 7/8 为例,使用 yum 包管理器):
- 安装 EPEL 仓库与必要工具:
sudo yum install -y epel-release yum-utils - 安装 Erlang(RabbitMQ 运行依赖):
sudo yum install -y erlang socat
- 安装 EPEL 仓库与必要工具:
- 安装 RabbitMQ 服务器:
- 方式 A(推荐,导入官方仓库):
- 导入 GPG 密钥:
sudo rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc - 启用仓库(示例为 el/7,其他版本请替换为对应仓库):
sudo yum-config-manager --add-repo https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/rabbitmq-server.repo - 安装:
sudo yum install -y rabbitmq-server
- 导入 GPG 密钥:
- 方式 B(离线 RPM):下载匹配版本的 Erlang 与 RabbitMQ RPM,先
sudo yum localinstall -y erlang-*.rpm,再sudo yum localinstall -y rabbitmq-server-*.rpm
- 方式 A(推荐,导入官方仓库):
- 版本匹配提示:Erlang 与 RabbitMQ 版本需兼容,安装前请查阅官方版本对照表并按需选择版本。
二 启动与基础配置
- 启动服务并设置开机自启:
sudo systemctl start rabbitmq-serversudo systemctl enable rabbitmq-server- 查看状态:
sudo systemctl status rabbitmq-server
- 启用管理插件并访问控制台:
- 启用插件:
sudo rabbitmq-plugins enable rabbitmq_management - 访问地址:
http://< 服务器IP> :15672 - 默认账号密码:guest/guest(默认仅允许本机访问)
- 启用插件:
- 远程访问与用户管理:
- 新建管理员用户:
sudo rabbitmqctl add_user admin StrongPass! - 设置角色:
sudo rabbitmqctl set_user_tags admin administrator - 赋权(默认 vhost “/”):
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" - 如需远程使用 “guest”,可创建新用户并赋权,或调整策略后再使用;出于安全不建议直接放开 guest 远程登录。
- 新建管理员用户:
三 防火墙与端口放行
- 放行常用端口(AMQP、管理、集群、MQTT/STOMP/WebSocket 按需开启):
sudo firewall-cmd --permanent --add-port=5672/tcp# AMQPsudo firewall-cmd --permanent --add-port=15672/tcp# 管理控制台sudo firewall-cmd --permanent --add-port=25672/tcp# 节点间 CLI/集群通信- 可选协议端口:
1883/8883(MQTT)、61613/61614(STOMP)、15674/15675(WS STOMP/MQTT) - 使配置生效:
sudo firewall-cmd --reload
- 云服务器需同时在云平台安全组放行对应端口。
四 基本使用与测试
- 使用命令行工具管理对象(示例):
- 创建虚拟主机:
sudo rabbitmqctl add_vhost /myvhost - 创建队列:
sudo rabbitmqctl declare queue name=myqueue durable=true - 创建交换机:
sudo rabbitmqctl declare exchange name=myex type=direct durable=true - 绑定关系:
sudo rabbitmqctl bind_queue destination=myqueue source=myex routing_key=mykey - 查看队列:
sudo rabbitmqctl list_queues
- 创建虚拟主机:
- 使用 rabbitmqadmin 进行快速测试(需先启用管理插件):
- 列出队列:
sudo rabbitmqadmin list queues - 发送消息:
sudo rabbitmqadmin publish routing_key=myqueue payload="Hello, RabbitMQ!" - 获取消息:
sudo rabbitmqadmin get queue=myqueue requeue=false
- 列出队列:
- Python 生产者/消费者最小示例(需安装 pika:
pip3 install pika):- 生产者 producer.py:
-
import pika conn = pika.BlockingConnection(pika.ConnectionParameters('localhost')) ch = conn.channel() ch.queue_declare(queue='test_queue', durable=True) ch.basic_publish( exchange='', routing_key='test_queue', body='Hello, RabbitMQ!', properties=pika.BasicProperties(delivery_mode=2) # 持久化 ) print("Sent 'Hello, RabbitMQ!'") conn.close()
-
- 消费者 consumer.py:
-
import pika conn = pika.BlockingConnection(pika.ConnectionParameters('localhost')) ch = conn.channel() ch.queue_declare(queue='test_queue', durable=True) def cb(ch, method, properties, body): print(f"Received { body.decode()} ") ch.basic_consume(queue='test_queue', on_message_callback=cb, auto_ack=True) print('[*] Waiting for messages...') ch.start_consuming()
-
- 运行:
python3 producer.py与python3 consumer.py测试收发。
- 生产者 producer.py:
五 常见问题与进阶
- 常见问题排查:
- 服务未启动或端口未监听:检查
sudo systemctl status rabbitmq-server与sudo journalctl -u rabbitmq-server -f - 管理界面无法远程访问:确认已启用插件、创建远程管理员用户并赋权、放通 15672 端口
- 客户端连不通 5672:确认防火墙/安全组、RabbitMQ 监听地址与端口配置
- 服务未启动或端口未监听:检查
- 进阶建议:
- 配置与定义备份/恢复:
sudo rabbitmqctl export_definitions /path/backup.json、sudo rabbitmqctl import_definitions /path/backup.json - 集群部署:准备一致的 Erlang Cookie、配置节点加入集群、镜像队列等(生产环境推荐)
- 版本选择:严格遵循官方 Erlang–RabbitMQ 版本对照 以避免兼容性问题。
- 配置与定义备份/恢复:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: rabbitmq消息队列centos如何使用
本文地址: https://pptw.com/jishu/785639.html
