尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

rabbitmq 学习一下

rabbitmq 学习一下
📅 发布时间:2026/7/3 12:06:03

RabbitMQ Broker : mq代理,在服务器上。他包含了交换机(exchange)-》通过路由关键字(routing_key)找到对应的队列(queue)。再给消费者。

/* 声明 durable 队列;若服务器上已存在同名但参数不同的队列会失败 */
amqp_queue_declare(conn, CHANNEL_ID,
amqp_cstring_bytes(queue),
/*passive=*/0, /*durable=*/1,
/*exclusive=*/0, /*auto_delete=*/0,
amqp_empty_table);
队列声明时durable=1表示将消息保存在服务器队列上,即便服务器代理Broker挂了,下次连接上也能发给消费者。

/* 启动消费者;no_ack=1 即自动 ack,broker 投递后立即从队列移除 */
amqp_basic_consume(conn, CHANNEL_ID,
amqp_cstring_bytes(queue),
amqp_empty_bytes,
/*no_local=*/0, /*no_ack=*/1, /*exclusive=*/0,
amqp_empty_table);


一个queue可以绑定多个消费者,

┌──────────┐ ┌──────────┐ │ Producer │ │ Consumer │ │ (生产者) │ │ (消费者) │ └────┬─────┘ └────▲─────┘ │ │ │ ① publish(exchange, routing_key, body) │ ⑥ 推消息给消费者 ▼ │ ┌──────────────────────────────────────────────────────────────┐ │ RabbitMQ Broker │ │ │ │ ┌────────────┐ ②查路由表 ┌──────────┐ │ │ │ exchange │ ─────────────▶ │ queue │ │ │ │ (交换机) │ ③匹配命中复制 │ (队列) │ ──▶ ⑤存储等投 │ │ └────────────┘ └──────────┘ │ └──────────────────────────────────────────────────────────────┘ Producer 进程 Consumer 进程 ┌───────────┐ ┌───────────┐ │ app 代码 │ │ app 代码 │ │ amqp_ │ │ amqp_ │ │ publish │ │ consume │ └─────┬─────┘ └─────▲─────┘ │ │ ┌─────▼─────┐ ┌─────┴─────┐ │ rabbitmq-c│ │ rabbitmq-c│ │ 库 (TCP │ │ 库 (TCP │ │ 客户端) │ │ 客户端) │ └─────┬─────┘ └─────▲─────┘ │ │ │ TCP 连接 #1 TCP 连接 #2 │ │ (源端口随机, 目的 5172) (源端口随机, 目的 5172) │ │ │ ┌────────────────────────┐ │ └──────────▶│ RabbitMQ Broker │─────────┘ │ (TCP 服务端, :5172) │ │ ┌──────────────────┐ │ │ │ exchange/queue │ │ │ │ 路由 + 缓冲 │ │ │ └──────────────────┘ │ └────────────────────────┘ ▲ │ 还可能有其他 Producer / Consumer (每个都是独立 TCP 连接)
┌───────────────┬──────────────────────────────────────────┐ │ exchange 类型 │ 路由规则 │ ├───────────────┼──────────────────────────────────────────┤ │ direct │ routing_key 完全等于 binding_key 才命中 │ ├───────────────┼──────────────────────────────────────────┤ │ topic │ routing_key 按 */# 模式匹配 binding_key │ ├───────────────┼──────────────────────────────────────────┤ │ fanout │ 忽略 routing_key,绑了的 queue 全收 │ ├───────────────┼──────────────────────────────────────────┤ │ headers │ 按 message header 匹配,不用 routing_key │ └───────────────┴──────────────────────────────────────────┘

相关新闻

  • SOCD Cleaner终极指南:5分钟解决键盘输入冲突,游戏操作精度提升40%
  • 【IDEA注释模板定制黄金法则】:20年资深工程师亲授5大高阶技巧,告别重复劳动!
  • Android测试实战指南:JUnit、Espresso与Mockito框架详解

最新新闻

  • LTC6904可编程振荡器与PIC单片机的高精度时钟方案
  • Panalog日志审计系统前台RCE漏洞复现与深度分析
  • 3分钟搞定QQ音乐加密文件:macOS专业解密工具QMCDecode使用指南
  • STM32与LV30条码扫描引擎的硬件协同设计与优化
  • 一小时掌握Node.js核心:从环境搭建到HTTP服务器实战
  • 解构工业软件下半场:国产厂商如何破局海外巨头垄断?

日新闻

  • JMeter接口测试实战:从核心元件到复杂场景构建
  • Java Applet版刽子手游戏源码:含完整项目结构、吊杆绘图与胜负逻辑
  • 使用Apache JMeter对RoadRunner PHP应用进行性能测试与调优指南

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号