RabbitMQ消息队列在Ubuntu上如何使用
导读: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
