中间件 | RabbitMq - [AMQP 模型]

INDEX

      • [§1 全局示意](#§1 全局示意)
      • [§2 依赖](#§2 依赖)

§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 依赖

相关推荐
2501_941877981 小时前
Python在微服务高并发异步分布式配置中心与动态参数管理架构中的实践
rabbitmq
k***z112 小时前
国产化中间件东方通TongWeb环境安装部署(图文详解)
中间件
2501_941879813 小时前
Python在微服务高并发异步缓存更新与数据一致性架构中的实践
rabbitmq
佛祖让我来巡山6 小时前
RabbitMQ 完整总结:架构、实战与可靠性保障
rabbitmq·消息队列可靠性
5***r9359 小时前
开源数据同步中间件(Dbsyncer)简单玩一下 mysql to mysql 的增量,全量配置
mysql·中间件·开源
2501_9418043216 小时前
Java在高并发互联网服务开发中的架构设计与性能优化实践全景分享
rabbitmq
q***064719 小时前
SocketTool、串口调试助手、MQTT中间件基础
单片机·嵌入式硬件·中间件
f***241119 小时前
【中间件】Pulsar集群安装
中间件
努力发光的程序员20 小时前
互联网大厂Java面试:从Spring Boot到微服务架构
spring boot·缓存·微服务·消息队列·rabbitmq·spring security·安全框架
2501_941147421 天前
基于 Kotlin 与 Ktor 构建高并发微服务与异步分布式系统实践分享
rabbitmq