一、安装RabbitMQ基础环境
sudo apt-get update
sudo apt-get install erlang-nox # 安装Erlang
erl # 验证安装(显示Erlang版本即成功)
sudo apt-get install rabbitmq-server # 自动安装并启动服务
sudo systemctl status rabbitmq-server # 查看服务状态(Active: active即为运行中)
二、启用内置管理插件(Web界面)
RabbitMQ默认内置rabbitmq_management插件,用于提供Web可视化监控:
sudo rabbitmq-plugins enable rabbitmq_management # 启用插件
sudo systemctl restart rabbitmq-server # 重启服务使插件生效
启用后,通过浏览器访问http://<服务器IP>:15672,使用默认账号guest/guest登录(注:RabbitMQ 3.3+版本中,guest用户仅能本地访问,远程访问需创建新用户并授权)。
三、安装第三方扩展插件
rabbitmq-plugins list # 显示已启用/禁用的插件
# 1. 下载与RabbitMQ版本匹配的插件(如3.13.0版本)
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.13.0/rabbitmq_delayed_message_exchange-3.13.0.ez
# 2. 将插件复制到RabbitMQ插件目录
sudo cp rabbitmq_delayed_message_exchange-3.13.0.ez /usr/lib/rabbitmq/lib/rabbitmq_server-*/plugins/
# 3. 启用插件
sudo rabbitmq-plugins enable rabbitmq_delayed_message_exchange
sudo rabbitmq-plugins enable rabbitmq_mqtt # 启用MQTT插件
sudo rabbitmq-plugins enable rabbitmq_web_mqtt # 可选:启用Web MQTT接口
四、插件使用示例
rabbitmqadmin declare exchange name=my_delayed_exchange type=x-delayed-message arguments='{"x-delayed-type":"direct"}'
rabbitmqadmin declare queue name=my_delayed_queue
rabbitmqadmin declare binding source=my_delayed_exchange destination=my_delayed_queue routing_key=my_key
pika库实现):import pika
import json
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
properties = pika.BasicProperties(headers={'x-delay': 5000}) # 延迟5秒
channel.basic_publish(
exchange='my_delayed_exchange',
routing_key='my_key',
body=json.dumps({'message': 'Delayed message'}),
properties=properties
)
connection.close()
mosquitto_pub/mosquitto_sub)测试:# 订阅主题
mosquitto_sub -h localhost -t "test/topic" -v
# 发布消息
mosquitto_pub -h localhost -t "test/topic" -m "Hello MQTT"
五、插件管理注意事项
rabbitmq_delayed_message_exchange-3.13.0.ez对应RabbitMQ 3.13.0),否则无法启用。/usr/lib/rabbitmq/lib/rabbitmq_server-*/plugins/(*为版本号),第三方插件需复制至此目录。rabbitmq-plugins enable <插件名>启用,rabbitmq-plugins disable <插件名>禁用(无需版本号和.ez后缀)。sudo systemctl restart rabbitmq-server