RabbitMQ 消息队列组件
RabbitMQ 是一款基于 AMQP 协议的高性能消息中间件,核心作用是在分布式系统中解耦生产者和消费者。它通过交换机、队列和绑定机制,实现消息的灵活路由与可靠投递。
1. RabbitMQ 架构与核心概念
传统的点对点通信往往依赖 Socket 直连,一旦网络中断或处理耗时过长,容易导致消息丢失或阻塞。引入消息队列后,生产者将消息发送至服务器,由服务器负责持久化并推送到消费者,实现了异步解耦。
在 RabbitMQ 中,核心概念包括:
- 交换机(Exchange):接收生产者发送的消息,根据规则转发到队列。
- 队列(Queue):存储待消费的消息。
- 绑定(Binding):连接交换机与队列的规则。
- 路由键(Routing Key):用于匹配绑定的标识符。
常见的交换机类型有:
- 广播交换(Fanout):将消息发送到所有绑定的队列。
- 直接交换(Direct):根据 Routing Key 精确匹配。
- 主题交换(Topic):使用通配符进行模式匹配。
2. 安装 RabbitMQ 服务
在 Linux 环境下,可以使用包管理器快速部署。
sudo apt install rabbitmq-server
启动并检查状态:
sudo systemctl start rabbitmq-server.service
sudo systemctl status rabbitmq-server.service
默认用户 guest 仅限本地登录,需创建管理员账户以支持远程访问。注意生产环境请务必修改默认密码。
# 添加用户
sudo rabbitmqctl add_user root 123456
# 设置标签为管理员
sudo rabbitmqctl set_user_tags root administrator
# 设置权限
sudo rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
# 开启管理插件
sudo rabbitmq-plugins enable rabbitmq_management
Web 管理界面默认端口为 15672,浏览器访问即可配置。
3. 安装 C++ 客户端库
我们选用 AMQP-CPP 库,它完全异步,无需线程即可支持高性能应用,且需要 C++17 标准支持。
首先安装底层事件循环库 libev:


