首页主机资讯RabbitMQ消息队列在Ubuntu上如何使用

RabbitMQ消息队列在Ubuntu上如何使用

时间2025-11-19 08:09:38发布访客分类主机资讯浏览539
导读:Ubuntu 上使用 RabbitMQ 的完整步骤 一 安装与启动 更新软件源并安装:sudo apt update && sudo apt install -y rabbitmq-server 启动服务并设置开机自启:s...

Ubuntu 上使用 RabbitMQ 的完整步骤

一 安装与启动

  • 更新软件源并安装:sudo apt update & & sudo apt install -y rabbitmq-server
  • 启动服务并设置开机自启:sudo systemctl start rabbitmq-server & & sudo systemctl enable rabbitmq-server
  • 验证运行状态:sudo rabbitmqctl status(看到节点与 Erlang 信息即为正常)

二 安全与用户管理

  • 创建管理员用户(示例用户名为admin,密码自定义):sudo rabbitmqctl add_user admin StrongPass!
  • 授予管理员标签:sudo rabbitmqctl set_user_tags admin administrator
  • 为默认虚拟主机授予权限:sudo rabbitmqctl set_permissions -p / admin “." ".” “.*”
  • 建议禁用默认的 guest 远程登录(仅本地可登录更安全):在配置文件 /etc/rabbitmq/rabbitmq.conf 中添加或修改:loopback_users.guest = false,然后重启服务:sudo systemctl restart rabbitmq-server

三 启用管理界面与访问

  • 启用管理插件:sudo rabbitmq-plugins enable rabbitmq_management
  • 访问地址:http://服务器IP:15672(默认账号密码为 guest/guest,建议创建新用户后禁用或删除默认账号)
  • 如启用防火墙,放行端口:sudo ufw allow 15672/tcp(云服务器还需在云安全组放行 15672

四 Python 快速上手示例

  • 安装客户端库:pip install pika
  • 生产者示例 send.py
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello', durable=True)
channel.basic_publish(
    exchange='',
    routing_key='hello',
    body='Hello RabbitMQ!',
    properties=pika.BasicProperties(delivery_mode=2),  # 消息持久化
)
print(" [x] Sent 'Hello RabbitMQ!'")
connection.close()
  • 消费者示例 receive.py
import pika

def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)
    ch.basic_ack(delivery_tag=method.delivery_tag)  # 手动确认

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello', durable=True)
channel.basic_qos(prefetch_count=1)  # 公平分发
channel.basic_consume(queue='hello', on_message_callback=callback)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
  • 运行顺序:先启动消费者 python receive.py,再运行生产者 python send.py

五 常用运维命令与排错

  • 常用命令
    • 查看状态:sudo rabbitmqctl status
    • 列出插件:sudo rabbitmq-plugins list
    • 启用插件:sudo rabbitmq-plugins enable < 插件名>
    • 停止/重启服务:sudo systemctl stop|restart rabbitmq-server
    • 创建虚拟主机:sudo rabbitmqctl add_vhost myvhost
    • 设置虚拟主机权限:sudo rabbitmqctl set_permissions -p myvhost user “." ".” “.*”
  • 常见问题
    • 管理界面打不开:确认已启用 rabbitmq_management、防火墙放行 15672、服务已启动
    • 远程无法登录:默认 guest 仅本地可登录,创建新用户并分配权限,或在配置中禁用 guest 远程登录
    • 消息丢失:队列/消息设置为 durable=True,发布时设置 delivery_mode=2,消费者处理完成后进行 ack

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


若转载请注明出处: RabbitMQ消息队列在Ubuntu上如何使用
本文地址: https://pptw.com/jishu/750796.html
ubuntu tigervnc如何自定义快捷键 RabbitMQ消息确认机制在Ubuntu上如何配置

游客 回复需填写必要信息