# 消息队列
10 篇文章与「消息队列」相关的全部文章。
RabbitMQ 的 prefetch 机制?
一、定义 prefetch(QoS)控制 RabbitMQ 一次推送给消费者多少条未确认的消息,实现限流和负载均衡。 二、设置 channel.basicQos(10); // 每个消费者最多 10 条未确认消息 三、作用 防止消息都推给快的消费者,慢的消费者闲置,实现公平分发。 防止消费者内存被
RabbitMQ 和 RocketMQ 的区别?
一、对比 维度 RabbitMQ RocketMQ 开发语言 Erlang Java 吞吐量 万级 十万级 延迟 微秒级 毫秒级 事务消息 不支持 支持 顺序消息 支持(弱) 支持 延迟消息 支持插件 原生支持 管理界面 有 有 二、选择
RabbitMQ 如何保证消息可靠?
一、生产端 开启 Publisher Confirm,确保消息到达 Exchange。 开启 Return 机制,消息不可路由时通知生产者。 本地消息表 + 定时补偿。 二、Broker 端 交换机、队列、消息都持久化(durable=true, deliveryMode=2)。 镜像队列:队列复制
RabbitMQ 的消息确认机制?
一、生产者确认(Publisher Confirm) 消息投递到 Exchange 后返回 confirm。 消息路由到 Queue(持久化消息持久化到磁盘)后返回 ack。 可配合 mandatory 参数,消息不可路由时返回给生产者。 二、消费者确认(Consumer ACK) 自动确认(aut
RabbitMQ 的核心概念?
一、核心组件 Producer:生产者,发送消息到 Exchange。 Exchange:交换机,接收消息并按路由规则路由到 Queue。 Queue:队列,存储消息,消费者从队列取。 Consumer:消费者。 Binding:Exchange 和 Queue 的绑定关系,带 routing ke
RocketMQ 的集群消费和广播消费?
一、集群消费(CLUSTERING) 同一条消息只被消费组内的一个消费者消费。 负载均衡:队列在消费者之间分配。 实际生产中最常用。 二、广播消费(BROADCASTING) 同一条消息被消费组内所有消费者都消费一次。 每个消费者都消费全量消息。 适用于需要所有节点都处理的场景,如配置刷新、缓存失效
RocketMQ 和 Kafka 的区别?
一、对比 维度 RocketMQ Kafka 开发语言 Java Java/Scala 消息模型 Topic/Queue Topic/Partition 顺序消息 支持 支持(分区内) 延迟消息 支持 不原生支持 事务消息 支持 不支持 吞吐量 十万级 百万级 适用场景 业务消息、事务 日志、大数据
RocketMQ 如何保证消息不丢?
一、生产端不丢 同步发送:等待 Broker ACK,失败重试。 开启重试机制:retryTimesWhenSendFailed。 事务消息保证本地事务与消息发送一致。 二、Broker 不丢 同步刷盘:消息写入磁盘才返回成功(flushDiskType=SYNC_FLUSH)。 同步复制:主从都写
RocketMQ 支持哪些消息类型?
一、普通消息 最基本的消息,发完即走。 二、顺序消息 同一队列内消息严格有序。发送时用 MessageQueueSelector 把同一业务 key 的消息发到同一队列,消费时同一队列只一个线程消费。 三、延迟消息 消息发送后延迟一段时间才投递。RocketMQ 支持固定延迟级别(1s/5s/10s
RocketMQ 的整体架构?
一、四大角色 Producer:消息生产者。 Consumer:消息消费者,支持 Push/Pull 两种模式。 NameServer:路由注册中心,无状态,可集群部署,节点间不通信。 Broker:消息存储与转发,可主从部署。 二、工作流程 NameServer 启动,Broker 启动后向所有
