RabbitMQ 全面解析(完整版)

本文将从 MQ 核心概念、RabbitMQ 基础用法、高级特性、生产问题排查、主流 MQ 选型对比、SpringBoot 整合及运维监控等方面,全面解析 RabbitMQ,兼顾入门与实战,适合开发、运维及架构师参考。

RabbitMQ基础知识 本文是按照这个链接中的知识进行深度学习。

一、MQ 核心概念解析

消息队列(MQ,Message Queue)是一种跨进程、跨系统的通信方式,核心作用是实现异步通信、系统解耦、流量削峰,同时保证消息的可靠传递,广泛应用于微服务架构、分布式系统中。

1.1 MQ 的核心作用

  • 异步通信:将同步调用转为异步,减少接口响应时间,提升用户体验(如订单提交后,异步处理支付、通知、物流)。

  • 系统解耦:生产端与消费端无需直接交互,仅通过消息传递数据,降低系统间的耦合度,便于后续扩展和维护。

  • 流量削峰:应对突发流量(如秒杀、活动峰值),将瞬时大量请求缓存到队列中,消费端按自身能力匀速处理,避免系统崩溃。

  • 数据缓冲:在上下游系统处理速度不一致时,通过队列缓冲数据,避免数据丢失或系统过载。

1.2 消息投递模式补充

MQ 核心投递模式分为以下3种,适配不同业务场景:

  • 点对点(P2P):一条消息仅被一个消费者消费,对应 RabbitMQ 简单/Work 模式,适用于任务分发、订单处理等一对一场景。

  • 发布/订阅(Pub/Sub):一条消息可被多个消费者消费,对应 RabbitMQ 的发布订阅模式,适用于日志广播、通知推送等场景。

  • 请求/响应(RPC):生产者发送消息后等待消费者返回处理结果,通过 `replyTo`(响应队列)与 `correlationId`(请求唯一ID)实现,适用于需要同步获取结果的异步调用场景(如微服务间异步调用+结果反馈)。

1.3 MQ 核心设计原则

一款优秀的消息中间件,需遵循以下核心设计原则,保障系统稳定可靠:

  • 松耦合:生产端与消费端无直接依赖,仅通过消息协议交互,无需感知对方的部署位置、技术栈。

  • 可靠性:保证消息不丢失、不重复、可可靠投递与消费,是 MQ 的核心设计目标。

  • 可扩展:支持集群扩容、队列分片,应对业务流量的持续增长。

  • 异步化:将同步调用转为异步,提升系统吞吐量与响应速度。

  • 最终一致性:在分布式事务场景下,通过消息实现跨系统的数据最终一致,而非强一致。

二、RabbitMQ 基础核心解析

RabbitMQ 是基于 AMQP 协议开发的开源消息中间件,由 Erlang 语言编写,具有高可用、高可靠、功能丰富等特点,广泛应用于各类分布式系统中。

2.1 RabbitMQ 核心组件

RabbitMQ 的核心组件包括生产者、消费者、交换器(Exchange)、队列(Queue)、绑定(Binding),各组件协同工作,实现消息的路由与传递。

2.1.1 核心组件说明

  • 生产者(Producer):发送消息的应用程序,负责将业务数据封装为消息,发送到 RabbitMQ 服务器。

  • 消费者(Consumer):接收并处理消息的应用程序,监听指定队列,获取消息后进行业务逻辑处理。

  • 交换器(Exchange):消息的"路由器",接收生产者发送的消息,根据绑定规则将消息路由到对应的队列中。

  • 队列(Queue):消息的"存储容器",接收交换器路由的消息,等待消费者消费;队列是消息的最终落脚点,支持持久化、过期等配置。

  • 绑定(Binding):建立交换器与队列之间的关联,指定路由规则(如 Routing Key),决定消息如何从交换器路由到队列。

2.1.2 交换器(Exchange)类型补充

RabbitMQ 支持4种核心交换器类型,覆盖绝大多数业务场景,其中 Headers 交换器为补充类型,完善路由能力:

  • Fanout(扇出交换器):最简单的交换器类型,将消息广播到所有绑定的队列中,忽略 Routing Key,适用于广播场景(如日志推送)。

  • Direct(直接交换器):根据消息的 Routing Key 与绑定的 Routing Key 完全匹配,将消息路由到对应队列,适用于精准路由场景(如订单处理)。

  • Topic(主题交换器):支持模糊匹配,Routing Key 采用"."分隔,支持"*"(匹配一个单词)、"#"(匹配多个单词),适用于复杂路由场景(如多维度消息分发)。

  • Headers(头部交换器):不使用 Routing Key,而是根据消息的头部属性(Key-Value 键值对)进行匹配,匹配规则通过 `x-match` 指定(`all` 表示所有头部属性匹配,`any` 表示任意一个匹配)。优点是规则灵活,支持多属性筛选;缺点是性能比 Direct/Topic 低,适合少量复杂属性匹配的场景(如根据"订单类型+支付方式"分发订单消息)。

2.2 RabbitMQ 工作模式详解

RabbitMQ 提供多种工作模式,适配不同的业务场景,以下是完整的工作模式解析,补充 RPC 模式及 Work 模式的公平分发策略:

2.2.1 简单模式(Simple Mode)

最基础的模式,一个生产者、一个消费者、一个队列,生产者发送消息到队列,消费者监听队列并消费消息,适用于简单的一对一通信场景(如单个任务处理)。

2.2.2 工作模式(Work Mode)

一个生产者、多个消费者、一个队列,消息被多个消费者轮流消费,适用于任务分发场景(如多线程处理任务)。

注意:RabbitMQ 默认采用轮询分发消息,不考虑消费者的处理能力,容易导致部分消费者消息积压、部分消费者空闲。生产环境建议开启公平分发(能者多劳),配置如下:

java 复制代码
// 消费者端设置,每次只获取1条消息,处理完并手动ACK后,再获取下一条 
channel.basicQos(1); // 关闭自动ACK,手动确认消息消费完成 
channel.basicConsume(queueName, false, consumer);

2.2.3 发布/订阅模式(Publish/Subscribe Mode)

一个生产者、多个消费者、一个 Fanout 交换器、多个队列,生产者发送消息到 Fanout 交换器,交换器将消息广播到所有绑定的队列,每个消费者监听一个队列,实现消息广播(如日志收集)。

2.2.4 路由模式(Routing Mode)

一个生产者、多个消费者、一个 Direct 交换器、多个队列,生产者发送消息时指定 Routing Key,交换器将消息路由到 Routing Key 完全匹配的队列,适用于精准路由场景(如不同类型的订单处理)。

2.2.5 主题模式(Topic Mode)

一个生产者、多个消费者、一个 Topic 交换器、多个队列,支持 Routing Key 模糊匹配,适用于复杂的多维度路由场景(如按地区、类型分发消息)。

2.2.6 RPC 模式(远程过程调用模式)

RabbitMQ 原生支持 RPC 模式,用于实现异步的 RPC 调用,即客户端(生产者)发送请求消息,服务端(消费者)处理后返回响应消息,客户端等待并接收响应,适用于需要同步获取处理结果的异步场景。

实现原理:

  1. 客户端发送消息时,通过 `replyTo` 属性指定响应队列,通过 `correlationId` 属性标记唯一请求 ID(用于匹配请求和响应)。

  2. 服务端消费请求消息,处理完成后,将结果发送到 `replyTo` 指定的响应队列,并携带相同的 `correlationId`。

  3. 客户端监听响应队列,根据 `correlationId` 匹配对应的请求,获取处理结果。

注意事项:需设置响应队列的过期时间,避免因服务端异常导致响应队列堆积;控制 RPC 调用的超时时间,防止客户端阻塞。

三、RabbitMQ 高级特性(实战必备)

RabbitMQ 提供丰富的高级特性,用于保证消息的可靠性、提升系统性能、适配复杂业务场景,以下是基础高级特性+补充特性,覆盖生产全场景:

3.1 消息持久化

默认情况下,RabbitMQ 重启后,队列和消息会丢失,通过持久化配置,可保证消息在 RabbitMQ 重启后不丢失。

持久化配置要点:队列持久化(声明队列时指定 durable=true)、消息持久化(发送消息时指定 deliveryMode=2)、交换器持久化(声明交换器时指定 durable=true)。

3.2 消息确认机制

消息确认机制分为生产者确认(Publisher Confirm)和消费者确认(Consumer ACK),用于保证消息的可靠投递和消费。

  • 生产者确认:生产者发送消息后,RabbitMQ 会返回确认信号(ACK),告知生产者消息是否成功投递到交换器/队列,避免消息丢失。

  • 消费者确认:消费者接收消息后,处理完成后向 RabbitMQ 发送 ACK 信号,RabbitMQ 收到 ACK 后,才会删除队列中的消息;若消费者未发送 ACK 且断开连接,RabbitMQ 会将消息重新投递,避免消息漏消费。

3.3 死信队列(DLX)

死信队列(Dead-Letter-Exchange,DLX)用于存储无法被正常消费的消息(如消息过期、队列满、消费者拒绝消费且不重新投递),便于后续排查问题、重新处理消息,避免消息丢失。

3.4 延迟队列

延迟队列用于实现消息的延迟投递(如订单超时取消、定时通知),RabbitMQ 本身不直接支持延迟队列,可通过"死信队列+消息过期时间"实现,或开启 `rabbitmq_delayed_message_exchange` 插件直接实现。

3.5 仲裁队列(Quorum Queue)

RabbitMQ 3.8 版本推出仲裁队列,用于替代传统镜像队列,解决镜像队列同步性能低、脑裂风险、主从切换复杂等问题,是生产环境高可用队列的首选。

核心特点:

  • 基于 Raft 协议实现数据同步,保证主从节点的数据一致性,解决镜像队列的脑裂问题。

  • 支持动态扩容节点,同步性能比镜像队列更高,适合高吞吐、高可用的场景。

  • 自动实现主从切换,无需手动配置策略,运维成本更低。

使用场景:生产环境的核心业务队列(如订单、支付、库存),替代传统的镜像队列。

3.6 惰性队列(Lazy Queue)

核心需求:解决 RabbitMQ 消息堆积导致的内存溢出问题,原队列会将消息加载到内存中以提升性能,堆积大量消息时会耗尽服务器内存。

核心特点:

  • 惰性队列将所有消息持久化到磁盘,仅在消费时将消息加载到内存,大幅降低内存占用。

  • 支持动态切换(通过 `x-queue-mode` 属性,`lazy` 为惰性模式,`default` 为默认模式)。

使用场景:消息堆积量较大的场景(如日志收集、批量数据处理),或非实时消费的场景。

注意事项:磁盘 IO 会略有增加,实时性要求高的核心业务队列不建议使用。

3.7 消息优先级

核心需求:实现消息的优先级消费,让重要的消息优先被处理(如 VIP 订单、紧急通知)。

实现方式:

  1. 声明队列时,设置 `x-max-priority` 属性,指定最大优先级(0-255,建议设置 10 以内,避免性能损耗)。

  2. 发送消息时,设置 `priority` 属性,指定消息的优先级(数值越大,优先级越高)。

注意事项:优先级队列会引入额外的性能开销,非必要场景不建议使用;仅在单队列内生效,跨队列无优先级对比。

3.8 生产者限流

原博客仅讲解了消费者限流,生产者限流同样重要,用于当 RabbitMQ 服务器压力过大(如磁盘满、内存高)时,限制生产者的消息发送速度,防止服务器崩溃。

实现方式:

  • 基于 Confirm 模式+流量控制:生产者通过 Confirm 模式感知消息的投递状态,当 RabbitMQ 返回 ACK 的速度变慢时,主动降低发送速度。

  • 基于 RabbitMQ 的流控机制:RabbitMQ 服务器会向生产者发送流控信号,生产者接收到信号后,暂停发送消息,直到信号解除。

  • 业务层限流:通过令牌桶、漏桶算法在生产者业务代码中限制发送频率(生产中最常用)。

3.9 RabbitMQ 集群

为提升 RabbitMQ 的可用性和吞吐量,可搭建 RabbitMQ 集群,实现负载均衡和故障转移。集群节点分为主节点(Master)和从节点(Slave),主节点负责处理消息的读写,从节点同步主节点的数据,当主节点故障时,从节点可切换为主节点,保证服务不中断。

四、RabbitMQ 生产问题排查与优化

在生产环境中,RabbitMQ 可能会出现消息丢失、重复消费、消息堆积、连接泄漏等问题,以下是完整的问题解决方案、排查方法及性能优化策略:

4.1 常见问题及解决方案

4.1.1 消息丢失

原因:生产者未开启确认机制、消息未持久化、交换器与队列未绑定、消费者未正确 ACK、RabbitMQ 服务器崩溃未持久化。

解决方案:开启生产者确认机制、开启消息/队列/交换器持久化、检查绑定关系、确保消费者正确发送 ACK、搭建集群实现高可用。

4.1.2 消息重复消费

原因:消费者未及时发送 ACK、网络异常导致 RabbitMQ 未收到 ACK、消费者重启后重新消费消息。

解决方案:消费端实现幂等性(如基于消息 ID 去重、数据库唯一约束)、合理设置 ACK 机制、避免消费者频繁重启。

4.1.3 消息堆积

原因:消费者处理速度慢、消费者数量不足、消息发送速度过快、队列设置不合理。

解决方案:增加消费者数量、优化消费者处理逻辑提升速度、开启公平分发、使用惰性队列处理大量堆积消息、对消息进行分片处理。

4.1.4 连接泄漏

问题现象:RabbitMQ 的连接数持续增长,最终达到服务器的连接上限,导致新的生产者/消费者无法连接。

问题原因:生产者/消费者的连接/信道未正确关闭(如代码异常导致资源释放逻辑未执行)。

解决方案:

  • 排查代码:确保在 `finally` 块中关闭连接(`connection.close()`)和信道(`channel.close()`)。

  • 设置连接超时:生产者/消费者设置连接的超时时间(如 30s),避免无效连接长期占用资源。

  • 监控连接数:在管理后台或 Prometheus+Grafana 中设置连接数告警,及时发现问题。

4.2 生产问题排查核心方法

4.2.1 内置命令排查

# 查看队列状态(消息数、消费者数、堆积数)

rabbitmqctl list_queues name messages ready unacknowledged consumers

# 查看交换器状态

rabbitmqctl list_exchanges name type

# 查看绑定关系

rabbitmqctl list_bindings

# 查看连接数(排查连接泄漏)

rabbitmqctl list_connections

# 查看信道数

rabbitmqctl list_channels

4.2.2 管理后台排查

  • 监控面板:查看服务器的 CPU、内存、磁盘、网络使用率,以及队列的消息收发速度、堆积趋势。

  • 消息追踪:开启 `rabbitmq_tracing` 插件,追踪消息的生产、路由、消费全过程,定位消息丢失/路由失败问题。

  • 死信查看:直接在管理后台查看死信队列的消息内容,快速定位消费失败的原因。

4.3 性能优化策略

4.3.1 服务器配置优化

  • 内存配置:设置 `vm_memory_high_watermark`(默认 40%),当内存占用超过阈值时,RabbitMQ 触发流控,防止内存溢出;建议设置为 50%-60%(根据服务器内存调整)。

  • 磁盘配置:使用 SSD 磁盘提升消息持久化的 IO 性能;设置 `disk_free_limit`,保证磁盘有足够的空闲空间(建议不小于 10GB)。

  • 网络配置:增大 TCP 连接的缓冲区大小,提升网络传输速度;关闭不必要的网络协议(如 IPv6)。

4.3.2 队列&消息配置优化

  • 非核心消息关闭持久化,提升发送和消费性能。

  • 批量发送/消费消息:生产者通过 `batchPublish` 批量发送,消费者通过 `basicQos` 设置批量获取,减少网络交互次数。

  • 合理设置队列的过期时间(x-expires),自动清理无用队列,减少资源占用。

4.3.3 集群配置优化

  • 仲裁队列的节点数建议设置为 3-5 个(奇数),兼顾高可用和同步性能。

  • 消费者采用跨节点连接,避免所有消费者连接到同一个节点,导致节点压力过大。

  • 配合 HAProxy/Nginx 实现 RabbitMQ 集群的负载均衡,统一入口,提升可用性。

五、主流 MQ 中间件选型对比

目前市面上主流的消息中间件有 RabbitMQ、Kafka、RocketMQ、ActiveMQ,新增热门 MQ Pulsar,以下是详细对比及场景化选型建议,帮助大家根据业务场景选择合适的 MQ:

5.1 主流 MQ 对比表格

对比维度 RabbitMQ Kafka RocketMQ ActiveMQ Pulsar
开发/所属 Rabbit Technologies Apache 阿里(Apache) Apache Apache、Yahoo
开发语言 Erlang Scala/Java Java Java Java/C++
核心优势 功能丰富、易用性高、社区活跃、支持多种交换器类型和工作模式 高吞吐、高并发、适合大数据流处理、持久化性能好 金融级可靠性、支持事务消息、阿里生态加持、适合Java技术栈 协议支持全面、部署简单、适合传统项目 超高吞吐、存储计算分离、扩容灵活、多租户、消息回溯、兼容Kafka/RabbitMQ协议
主要缺点 高吞吐场景性能不如Kafka/Pulsar、Erlang语言学习成本高 消息可靠性不如RabbitMQ/RocketMQ、功能相对简单 社区活跃度不如RabbitMQ/Kafka、跨语言支持一般 性能一般、高并发场景表现差、社区维护力度下降 部署复杂度高于Kafka/RabbitMQ、国内生态不如RocketMQ/RabbitMQ、小流量场景资源占用较高
吞吐量 中高(万级 TPS) 高(十万级 TPS) 高(十万级 TPS) 中(千级-万级 TPS) 极高(千万级 TPS)
可用性 高(集群+镜像队列/仲裁队列) 高(多副本+集群) 高(多副本+集群) 中(支持集群,稳定性一般) 高(多副本+异地容灾)
功能丰富度
适合场景 微服务解耦、复杂路由、通知推送、任务分发 大数据流处理、日志收集、高吞吐同步 电商、金融、支付、分布式事务 传统企业系统、老旧项目集成 大数据流处理、高吞吐日志收集、跨地域消息通信、多租户场景
学习/维护 中等(文档丰富,Erlang语言有门槛) 中等(配置复杂,适合大数据团队) 中等(Java技术栈友好) 低(部署简单,功能简单) 中等(国内资料逐步增多)

5.2 场景化选型建议

结合业务场景,精准选择 MQ,提升系统性能和稳定性:

  • 微服务解耦/复杂业务队列:首选 RabbitMQ(功能丰富、易用性高、社区活跃);若团队 Java 技术栈深厚,可选 RocketMQ。

  • 电商/金融支付/分布式事务:首选 RocketMQ(原生支持事务消息、金融级可靠性、阿里生态加持)。

  • 大数据流处理/日志收集/高吞吐同步:首选 Kafka(业内标准);超大规模吞吐(千万级 TPS)可选 Pulsar。

  • 传统企业系统/老旧项目集成:可选 ActiveMQ(协议支持全面、部署简单),或直接迁移到 RabbitMQ(更稳定)。

  • 跨地域/多租户场景:首选 Pulsar(原生支持,无需额外开发)。

  • 小型项目/快速落地:首选 RabbitMQ(部署简单、文档丰富、运维成本低)。

六、RabbitMQ 与 Spring 生态整合(实战)

在 Java 开发中,RabbitMQ 常与 SpringBoot/SpringCloud 整合,简化开发流程,以下是完整的整合步骤和核心功能,可直接用于项目开发:

6.1 核心依赖

java 复制代码
<!-- SpringBoot整合RabbitMQ核心依赖 --> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-amqp</artifactId> 
</dependency>

6.2 核心配置(application.yml)

java 复制代码
spring: 
    rabbitmq: 
        host: 127.0.0.1 
        port: 5672 
        username: guest 
        password: guest 
        virtual-host: / 
        # 生产者配置:开启Confirm模式(异步确认)、开启Return模式(处理路由失败消息) 
        publisher-confirm-type: correlated 
        publisher-returns: true 
        # 消费者配置:手动ACK、公平分发、线程池配置 
        listener: 
            simple: 
                acknowledge-mode: manual # 手动ACK 
                prefetch: 1 # 公平分发,每次获取1条消息 
                concurrency: 1 # 最小消费线程数 
                max-concurrency: 5 # 最大消费线程数

6.3 核心实战功能

  • 自动声明组件:通过 `@Queue`、`@Exchange`、`@Binding` 注解快速声明队列、交换器和绑定关系,替代手动创建,简化开发。

  • 生产者异步确认:通过 `RabbitTemplate.confirmCallback` 处理消息投递的 ACK/NACK,通过 `RabbitTemplate.returnCallback` 处理路由失败的消息,保证消息可靠投递。

  • 消费者手动 ACK:通过 `Channel` 对象的 `basicAck`(消费成功)、`basicNack`(消费失败,可重发)、`basicReject`(消费失败,丢弃)实现手动确认,避免消息漏消费或重复消费。

  • 消息序列化:默认使用 JDK 序列化,建议替换为 JSON 序列化(通过 `MessageConverter` 配置),提升跨语言兼容性和消息可读性。

  • 分布式事务:结合 SpringCloud Alibaba Seata,或使用 RocketMQ 的事务消息,实现 RabbitMQ 分布式事务的最终一致性,解决跨系统数据同步问题。

七、RabbitMQ 监控与运维(生产必备)

生产环境中,RabbitMQ 的监控和运维是保障服务稳定运行的核心,以下是主流监控方案、日常运维操作及备份恢复策略:

7.1 主流监控方案

7.1.1 Prometheus + Grafana(推荐)

核心优势:开源、轻量、可视化程度高,支持自定义监控指标和告警规则,适合生产环境大规模部署。

实现步骤:

  1. 开启 RabbitMQ 的 `rabbitmq_prometheus` 插件,暴露监控指标。

  2. 配置 Prometheus 拉取 RabbitMQ 的监控指标。

  3. 导入 RabbitMQ 的 Grafana 仪表盘,实现可视化监控(如消息堆积、消费速度、连接数、系统资源等)。

7.1.2 RabbitMQ 原生管理后台

适合小型项目或快速排查问题,提供基础的监控和操作功能(如队列状态、连接数、消息追踪),无需额外部署,简单易用。

7.1.3 企业级监控工具

如 Zabbix、Nagios,适合已有企业级监控体系的场景,可实现统一监控和告警,整合企业内其他服务的监控数据。

7.2 日常运维核心操作

7.2.1 插件管理

RabbitMQ 的大部分高级功能通过插件实现,核心插件操作如下:

bash 复制代码
# 开启管理后台插件(必开)
rabbitmq-plugins enable rabbitmq_management
# 开启消息追踪插件(排查消息问题)
rabbitmq-plugins enable rabbitmq_tracing
# 开启Prometheus监控插件(生产监控)
rabbitmq-plugins enable rabbitmq_prometheus
# 开启延迟消息插件(RabbitMQ 3.9+推荐,实现延迟队列)
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

7.2.2 数据备份与恢复

为防止数据丢失,需定期进行数据备份,核心操作如下:

  • 配置备份:通过 `rabbitmqctl export_definitions` 导出队列、交换器、绑定等配置,保存到本地文件。

  • 消息备份:通过 `rabbitmq-dump-queue` 导出队列中的消息,用于后续恢复。

  • 配置恢复:通过 `rabbitmqctl import_definitions` 导入备份的配置文件,快速恢复组件信息。

  • 消息恢复:通过 `rabbitmq-publish-queue` 导入备份的消息,恢复队列中的数据。

7.2.3 版本升级与异地容灾

  • 版本升级:建议采用蓝绿部署,先升级从节点,再升级主节点,避免服务中断;升级前做好数据备份,防止升级失败导致数据丢失。

  • 异地容灾:对于核心业务,可搭建跨地域的 RabbitMQ 集群,结合 Pulsar 或消息同步工具,实现异地容灾,确保极端情况下服务不中断。

八、总结

RabbitMQ 作为一款功能丰富、可靠稳定的消息中间件,在微服务、分布式系统中应用广泛。本文从基础概念、核心组件、工作模式、高级特性、生产问题排查、选型对比、Spring 整合、监控运维等方面,全面解析了 RabbitMQ,覆盖入门到实战的全知识点。

在实际项目中,需结合业务场景,合理配置 RabbitMQ 的各项特性,做好监控和运维,确保消息的可靠传递和系统的稳定运行。同时,根据业务需求选择合适的消息中间件,才能最大化发挥 MQ 的价值,提升系统的性能和可扩展性。

相关推荐
Francek Chen5 小时前
【大数据存储与管理】分布式数据库HBase:06 HBase编程实践
大数据·数据库·hadoop·分布式·hbase
yuweiade6 小时前
使用 Docker 部署 RabbitMQ 的详细指南
docker·容器·rabbitmq
柒.梧.6 小时前
Redis架构演进:从主从到Cluster,读懂高可用与分布式核心
redis·分布式·架构
渔民小镇7 小时前
不用前端也能测试 —— 模拟客户端请求模块详解
java·服务器·前端·分布式·游戏
IT莫染7 小时前
Spring Boot 集成 RabbitMQ MQTT 协议实现消息通信
rabbitmq
星辰_mya8 小时前
雪花算法:分布式世界的“身份证号”
分布式
AIminminHu8 小时前
OpenGL渲染与几何内核那点事-项目实践理论补充(一-2-(3)-当你的协同CAD服务器面临“千人同屏”时:从单机优化到分布式高并发)
运维·服务器·分布式
真上帝的左手9 小时前
12. 消息队列-RabbitMQ-高可用核心机制
分布式·rabbitmq·java-rabbitmq·mq
xiaohuoji12910 小时前
SpringBoot中整合RabbitMQ(测试+部署上线 最完整)
spring boot·rabbitmq·java-rabbitmq