随笔分类 - RabbitMQ
摘要:仲裁(Quorum)队列 1、概述 (1)实现基于 Raft 共识算法的持久、复制的 FIFO 队列 (2)从 RabbitMQ 3.8.0 开始可用 (3)Quorum 队列 + Streams 取代持久的镜像队列,即最初的复制队列类型,该队列现在已被废弃并计划被移除 (4)Quorum 队列是复
阅读全文
摘要:生产端 1、创建生产者 Spring Boot 工程 2、引入 starter <!-- RabbitMQ 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-
阅读全文
摘要:死信 1、无法被消费的消息 (1)producer 将消息投递到 broker 或直接到 queue,consumer 从 queue 取出消息进行消费,但由于特定的原因导致 queue 中的某些消息 (2)死信队列:没有被及时消费的消息存放的队列 2、应用场景:当消息消费发生异常时,将消息投入死信
阅读全文
摘要:概述 1、RabbitMQ 消息传递模型:Pub / Sub(发布 / 订阅模式) (1)生产者生产的消息不会直接发送到队列 (2)实际上,通常生产者不知道消息传递到哪些队列,生产者只能将消息发送到交换机(exchange) 2、交换机 (1)接收来自生产者的消息,并将其推入队列 (2)由交换机的类
阅读全文
摘要:处理无法投递的消息 1、假设:RabbitMQ 集群不可用 2、RabbitMQ 重启期间,生产者消息投递失败,导致消息丢失,需要手动处理和恢复 消息的可靠投递 1、在使用 RabbitMQ 时,作为消息发送方,希望杜绝任何消息丢失,或者投递失败场景 2、RabbitMQ 提供两种方式,控制消息的投
阅读全文
摘要:消费端应答 1、问题引入 (1)消费者完成一个任务需要一段时间,如果其中一个消费者处理一个长任务,并只完成部分但突然挂掉 (2)若 RabbitMQ 一旦向消费者传递一条消息,便立即将该消息标记为删除 (3)在这种情况下,突然其中一个消费者挂掉,将丢失正在处理的消息、后续发送给该消费者的消息 2、消
阅读全文
摘要:MQ 1、message queue 2、本质队列,FIFO 先入先出 3、一种跨进程的通信机制,用于上下游传递消息 (1)在互联网架构中,MQ 是一种上下游“逻辑解耦 + 物理解耦”消息通信服务 (2)使用 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他服务 4、作用 (1)流量消峰 (2
阅读全文