首页主机资讯rabbitmq消息队列centos如何使用

rabbitmq消息队列centos如何使用

时间2026-01-19 11:29:04发布访客分类主机资讯浏览930
导读:在 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
  • 安装 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
    • 方式 B(离线 RPM):下载匹配版本的 ErlangRabbitMQ RPM,先 sudo yum localinstall -y erlang-*.rpm,再 sudo yum localinstall -y rabbitmq-server-*.rpm
  • 版本匹配提示:Erlang 与 RabbitMQ 版本需兼容,安装前请查阅官方版本对照表并按需选择版本。

二 启动与基础配置

  • 启动服务并设置开机自启:
    • sudo systemctl start rabbitmq-server
    • sudo 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 # AMQP
    • sudo 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.pypython3 consumer.py 测试收发。

五 常见问题与进阶

  • 常见问题排查:
    • 服务未启动或端口未监听:检查 sudo systemctl status rabbitmq-serversudo journalctl -u rabbitmq-server -f
    • 管理界面无法远程访问:确认已启用插件、创建远程管理员用户并赋权、放通 15672 端口
    • 客户端连不通 5672:确认防火墙/安全组、RabbitMQ 监听地址与端口配置
  • 进阶建议:
    • 配置与定义备份/恢复:sudo rabbitmqctl export_definitions /path/backup.jsonsudo rabbitmqctl import_definitions /path/backup.json
    • 集群部署:准备一致的 Erlang Cookie、配置节点加入集群、镜像队列等(生产环境推荐)
    • 版本选择:严格遵循官方 Erlang–RabbitMQ 版本对照 以避免兼容性问题。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: rabbitmq消息队列centos如何使用
本文地址: https://pptw.com/jishu/785639.html
centos rabbitmq备份恢复方法 centos rabbitmq内存不足怎么办

游客 回复需填写必要信息