中间件 | 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 依赖

相关推荐
sinat_363954234 小时前
canal-deployer1.1.8 + mysql + rabbitmq消息队列
mysql·rabbitmq
武子康4 小时前
Java-204 RabbitMQ Connection/Channel 工作流程:AMQP 发布消费、抓包帧结构与常见坑
java·分布式·消息队列·rabbitmq·ruby·java-activemq
武子康4 小时前
Java-205 RabbitMQ 工作模式实战:Work Queue 负载均衡 + fanout 发布订阅(手动ACK/QoS/临时队列)
java·性能优化·消息队列·系统架构·rabbitmq·java-rabbitmq·mq
Wang's Blog6 小时前
RabbitMQ: 解析Kubernetes原理与高可用集群部署实践
分布式·kubernetes·rabbitmq
柯南二号7 小时前
【后端】【Java】RabbitMQ / RocketMQ / Kafka / Redis 消息队列深度对比与选型指南
java·java-rocketmq·java-rabbitmq
bluechips·zhao7 小时前
中间件及框架漏洞详解(Nginx、Apache、Tomcat、Redis、Zookeeper、RabbitMQ、Kafka等)
nginx·web安全·网络安全·中间件·apache·网络攻击模型·java-rabbitmq
- 总有一天你会出现在我身边7 小时前
windows版中间件启动
windows·中间件
robin59117 小时前
rabbitmq-深入理解exchange/queue/routing-key等概念
分布式·rabbitmq
bailaoshi6668 小时前
Spring WebFlux整合reactor-rabbitmq
spring·rabbitmq·java-rabbitmq
Wang's Blog8 小时前
RabbitMQ: 基于Docker技术实施集群部署实战指南
分布式·docker·rabbitmq