中间件 | RabbitMq - [AMQP 模型]

§1 全局示意

AMQP,即高级消息队列协议(Advanced Message Queuing Protocol),整体架构如下图
在这里插入图片描述

  • producer 发送消息给 rabbit mq broker
  • rabbit mq broker 分发消息给 consumer消费
  • producer/consumer 都通过 connection 与 borker 进行连接
    • AMQP 的连接是典型的长连接
    • 底层通过 TCP实现
    • connection 通过 channel 实现多路复用
      • 这是为了防止服务器同一时间维护多个 TCP 长链接,以节省系统资源
  • broker 中可能拆分多个 VHost
    • broker 的实际能力都有 VHost 对外提供
    • VHost 可以在单机中隔离多个环境,类似常见的虚拟机
    • 客户端会在连接协商时期确定要连接的 VHost
  • broker 中通过 exchange 接受消息
    • 消息的实际存储是由 queue进行的
    • 但 broker 通过 exchange 直接对接 channel
    • exchange 通过 bingding 与具体的 queue 进行绑定
      消息从 producer 发出
      消息共用同一个 connection 由 channel 多路复用的传输
      消息被 exchange 接受
      消息被 exchange 按 bingding 保存到实际的 queue
  • 消息会被 consumer 拉取
    • 消息会通过 ack 机制确认拉取成功
    • 被拉取的消息会在 broker 端删除以防止消息重复

§2 依赖

相关推荐

  1. 中间rabbitmq

    2024-03-13 06:52:05       36 阅读
  2. RabbitMQ php amqp

    2024-03-13 06:52:05       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 06:52:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 06:52:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 06:52:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 06:52:05       20 阅读

热门阅读

  1. SpringCloud-实现基于RabbitMQ的消息队列

    2024-03-13 06:52:05       23 阅读
  2. Linux纯命令行查看文本文件

    2024-03-13 06:52:05       23 阅读
  3. 【系统安全】浅谈保障接口安全的10种技术手段

    2024-03-13 06:52:05       24 阅读
  4. 异步&事件循环输出题-易错知识点

    2024-03-13 06:52:05       19 阅读
  5. python】jupyter notebook导出pdf和pdf不显示中文问题

    2024-03-13 06:52:05       20 阅读
  6. uView ScrollList 横向滚动列表

    2024-03-13 06:52:05       23 阅读