RabbitMQ 安装使用极简指导(Windows/macOS/Linux通用)

核心逻辑:先装Erlang(RabbitMQ依赖)→ 装RabbitMQ → 启动服务 → 可视化管理 → 简单收发消息。

一、安装准备(必做)

1. 安装Erlang

  • 原因:RabbitMQ基于Erlang开发,必须先装且版本匹配(官网有版本对照表,新手直接装最新版即可)。
  • 下载:Erlang官网,按系统选安装包(Windows双击安装,mac用brew install erlang,Linux用apt/yum install erlang)。
  • 验证:终端输入 erl -v,显示版本号即成功。

2. 安装RabbitMQ

  • 下载:RabbitMQ官网,选对应系统安装包(Windows/mac/Linux均有一键安装包)。
  • 关键步骤:

    • Windows:安装后默认路径 C:\Program Files\RabbitMQ Server\,需配置环境变量(将sbin目录加入PATH)。
    • macOS:brew install rabbitmq,安装后路径 /usr/local/Cellar/rabbitmq/
    • Linux(Ubuntu):sudo apt-get install rabbitmq-server,自动启动服务。

二、启动与基础配置

1. 启动RabbitMQ服务

  • Windows:以管理员身份打开终端,输入 rabbitmq-server start(启动),rabbitmq-server stop(停止)。
  • macOS/Linux:sudo rabbitmq-server start(启动),sudo rabbitmqctl stop(停止)。
  • 验证:终端输入 rabbitmqctl status,无报错即服务正常。

2. 启用管理插件(可视化界面,必开)

  • 终端输入 rabbitmq-plugins enable rabbitmq_management,启用后访问 http://localhost:15672
  • 默认账号密码:guest/guest(仅本地访问可用,远程访问需新建账号)。

3. 新建远程访问账号(可选,跨设备连接用)

  • 终端执行3条命令:

    1. rabbitmqctl add_user 用户名 密码(创建账号)
    2. rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"(授予所有权限)
    3. rabbitmqctl set_user_tags 用户名 administrator(设为管理员角色)

三、快速使用(以Python为例,实现消息收发)

1. 安装Python客户端库

  • 终端输入 pip install pika(RabbitMQ的Python驱动)。

2. 步骤1:创建生产者(往队列发消息)

import pika

# 连接RabbitMQ服务(本地默认地址+端口,远程需改host为RabbitMQ服务器IP)
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

# 声明队列(不存在则创建, durable=True 设为持久化,防止服务重启消息丢失)
channel.queue_declare(queue='test_queue', durable=True)

# 发送消息(body为消息内容,需转字节)
channel.basic_publish(
    exchange='',
    routing_key='test_queue',  # 队列名,与声明一致
    body='这是一条测试消息!',
    properties=pika.BasicProperties(delivery_mode=2)  # 消息持久化
)

print("消息发送成功!")
connection.close()  # 关闭连接

3. 步骤2:创建消费者(订阅队列,接收推送消息)

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='test_queue', durable=True)  # 与生产者队列名一致

# 消息回调函数(RabbitMQ主动推送消息时触发)
def callback(ch, method, properties, body):
    print(f"收到推送消息:{body.decode('utf-8')}")
    ch.basic_ack(delivery_tag=method.delivery_tag)  # 手动确认消息已处理

# 注册订阅(auto_ack=False 关闭自动确认,需手动ack)
channel.basic_consume(queue='test_queue', on_message_callback=callback, auto_ack=False)
# 设置预取数(每次只推1条,处理完再推下一条,防止过载)
channel.basic_qos(prefetch_count=1)

print("等待接收消息...(按Ctrl+C退出)")
channel.start_consuming()  # 持续监听队列,接收推送

4. 测试流程

  1. 启动RabbitMQ服务(rabbitmq-server start)。
  2. 运行消费者程序(开始监听队列)。
  3. 运行生产者程序(发送消息)。
  4. 消费者终端会立即收到RabbitMQ主动推送的消息。

需要我帮你排查 安装失败问题,或生成 Java/Go语言的收发消息代码,亦或是配置 RabbitMQ集群(高可用) 吗?

标签: none

添加新评论