MQ
文章平均质量分 89
d3y1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Kafka选举机制:Controller选举、Leader选举与ISR的完整链路
Kafka 选举机制涵盖 Controller、Partition Leader 与 Consumer Group Leader 三类角色。Controller 负责元数据管理,传统依赖 ZooKeeper,KRaft 模式则采用 Raft 协议实现无 ZK 架构。Partition Leader 选举基于 ISR(与 Leader 同步的副本),由 Controller 从 ISR 中选择,保障数据一致性;unclean.leader.election.enable 控制是否允许非同步副本选主,影响可用性原创 2026-11-04 14:55:42 · 190 阅读 · 0 评论 -
RocketMQ架构:顺序消息消费性能调优
本文系统阐述了RocketMQ顺序消息在10W QPS场景下的性能调优策略,核心在于提升并行度与降低链路延迟。通过增加ConsumeQueue数量(读写队列数配置)、优化消息体设计、合理硬件选型(SSD、CPU绑定)、调整Broker配置(刷盘策略、线程池、存储路径)及客户端参数(异步发送、重试机制),结合JVM调优与监控体系,实现高吞吐、低延迟的顺序消费。关键原则:先扩并行,再降延迟,最终以压测验证容量。原创 2026-10-19 19:09:43 · 145 阅读 · 0 评论 -
RocketMQ架构:推模式与拉模式
RocketMQ 的 Push 不是 Broker 主动推送,而是客户端通过 RebalanceService、PullMessageService 和消费线程共同完成的自动拉取。它用流控避免消息在消费端堆积。Pull 模式把更多控制权交给业务,代价是要自己处理队列、offset 和重试。理解这两种模式的关键,是看清“拉取请求从哪来、消费线程怎么触发、流控发生在哪里”。原创 2026-10-15 14:19:17 · 438 阅读 · 0 评论 -
RocketMQ架构:消息有序之锁实现
RocketMQ 顺序消息通过“四把锁”机制保障消费有序:1)Broker 分布式锁确保队列单客户端独占;2)Broker 全局锁保护锁操作原子性;3)本地队列锁串行化消息拉取与提交;4)本地消费锁保证业务处理单线程执行。配合应用层发送按业务键路由、消费使用 MessageListenerOrderly,实现分区有序。但需注意积压风险与短暂乱序可能,建议加强监控与幂等设计。原创 2026-10-15 14:08:31 · 330 阅读 · 0 评论 -
RocketMQ架构:消息有序与消息积压
RocketMQ 通过分区顺序(同一业务键路由至同队列)和串行消费(MessageListenerOrderly)保障消息有序,避免全局有序带来的性能瓶颈。消息积压需通过监控消费延迟、合理扩容消费者或新建高队列 Topic 转储解决。关键在于:优先使用分区有序,设计时预留队列数与消费能力,结合监控告警与自动扩容,预防积压发生。原创 2026-10-14 20:46:47 · 264 阅读 · 0 评论 -
RocketMQ架构:消息零丢失
RocketMQ 实现消息零丢失需贯穿生产、存储、消费三阶段:生产端采用同步发送并配置重试;Broker 端启用同步刷盘(SYNC_FLUSH)与主从同步(SYNC_MASTER);消费端确保业务处理成功后才确认消息,异步场景结合本地消息表与定时扫描兜底。关键在于全链路可靠性设计,兼顾幂等性与性能权衡,实现高可用消息传递。原创 2026-10-14 20:37:19 · 191 阅读 · 0 评论 -
RocketMQ与Kafka:从存储模型、性能原理到业务选型
Kafka 的优势来自“数据即日志”:顺序写、批量发送、零拷贝,因此适合高吞吐数据管道。RocketMQ 的优势来自“事件即业务”:通过事务消息、延迟消息、顺序消费和 Tag 过滤,解决交易链路中的一致性与时序问题。它的吞吐低于 Kafka,不是技术落后,而是主动承担语义复杂性的结果。在大促等高并发场景中,单靠消息中间件调优不够,还需要在接入层增加缓冲、批量和降级能力。最终方案应服务业务本质:日志管道用 Kafka,交易中枢用 RocketMQ,抗压体系靠系统级削峰。原创 2026-10-02 15:34:34 · 510 阅读 · 0 评论 -
Kafka实战:100W级消息积压
Kafka 100万级积压根因常为消费链路被单条消息阻塞,非机器瓶颈。复盘六步SOP:限流止损、死信隔离、影子组回溯历史积压、主链路修复(加超时熔断+批量幂等)、兜底组待命、一致性校验。关键在于分区数决定并发上限,盲目扩容无效;通过独立通道处理积压,避免二次打爆下游。核心是“先止血,再清淤,最后修复”,保障实时链路与数据一致性。原创 2026-09-28 15:50:36 · 488 阅读 · 0 评论 -
Kafka之Rebalance Storm深度解析
Kafka 是一个高吞吐、分布式的消息队列系统,广泛应用于大数据流处理、日志收集、事件驱动架构等场景。在 Kafka 消费者组(Consumer Group)中,Rebalance(重平衡)是一个核心机制,用于在消费者组成员变化时重新分配分区。然而,当 Rebalance 频繁发生时,就会形成所谓的 Rebalance Storm(重平衡风暴),这会严重影响系统的性能和可用性。本文将深入分析 Rebalance Storm 的成因、影响及解决方案。原创 2026-02-19 16:11:02 · 1248 阅读 · 0 评论 -
Kafka高吞吐量机制深度解析
Kafka通过以下核心机制实现高吞吐量:- **顺序I/O和零拷贝**:最大化磁盘和网络性能- **批量处理**:减少网络请求和处理开销- **分区并行**:实现水平扩展和并行处理- **压缩优化**:平衡CPU和带宽使用- **网络优化**:高效的网络协议和连接管理理解这些机制并根据实际场景进行合理配置,可以充分发挥Kafka的高吞吐量优势,构建高性能的分布式数据处理系统。原创 2025-12-05 22:31:13 · 1171 阅读 · 0 评论 -
MQ-11消息队列综合对比
消息队列系统综合对比摘要:RabbitMQ、Kafka和RocketMQ在性能、功能、架构等方面各有特点。RabbitMQ适合复杂路由和多语言场景,吞吐量万级/秒;Kafka吞吐量百万级/秒,适合大数据和流处理;RocketMQ支持事务/顺序消息,适合金融级应用。选择需考虑业务需求、性能要求、运维能力等因素,没有绝对最优方案。RabbitMQ管理界面友好,Kafka扩展性强,RocketMQ可靠性高,三者分别适用于不同规模的业务场景。原创 2025-09-24 12:05:30 · 1002 阅读 · 0 评论 -
MQ-10消息队列可靠性保障机制
本文详细对比了主流消息队列RabbitMQ、Kafka和RocketMQ的可靠性保障机制。消息队列可靠性主要包括三个方面:消息不丢失、不重复和有序性。RabbitMQ通过多层次确认机制(生产者确认、持久化队列、镜像队列)保障消息不丢失;Kafka采用多副本机制和ISR(同步副本)机制;RocketMQ则通过同步刷盘和主从复制实现。在消息不重复方面,各系统通过幂等性设计(唯一消息ID、去重表、状态检查)和有序投递机制来避免重复消费。文章通过流程图和代码示例展示了各机制的具体实现原理。原创 2025-09-24 11:56:51 · 1276 阅读 · 0 评论 -
MQ-09Kafka之算法源码
Kafka分区分配机制解析:生产者使用DefaultPartitioner实现基于Murmur2哈希的键控分区或轮询粘性分区策略,消费者则通过RangeAssignor进行范围分配。生产者源码展示了键值哈希取模和轮询两种分区逻辑,消费者源码演示了按主题对消费者排序后平均分配分区的过程。两种分配策略都设计为高效且可扩展,确保消息均匀分布。原创 2025-09-24 11:53:02 · 916 阅读 · 0 评论 -
MQ-08Kafka之消息流程
Kafka消息生命周期包含生产、存储和消费三个阶段。生产者使用分区器选择目标分区,消息经过序列化后批量发送到Broker。Leader节点接收消息后写入本地日志并同步到Follower副本,通过ISR机制管理副本同步状态。消费者从Broker拉取消息并提交偏移量。整个流程涉及分区选择、日志分段、索引查找和副本同步等核心机制,保障了消息的可靠传输和高吞吐量。原创 2025-09-24 11:51:43 · 1071 阅读 · 0 评论 -
MQ-07Kafka之架构详解
Apache Kafka是一个分布式流处理平台,核心架构包括Broker集群、Topic/Partition机制、副本系统、存储层和协调器。Broker作为核心节点处理消息存储和请求;Topic按逻辑分类消息,Partition实现物理分片;副本机制保障高可用性;存储层采用日志分段结构;协调器管理消费者组和事务状态。整个系统通过Zookeeper进行集群协调,支持高吞吐、可扩展的实时数据处理,适用于构建复杂的数据管道和流应用场景。原创 2025-09-24 11:50:29 · 1079 阅读 · 0 评论 -
MQ-06RocketMQ之算法源码
RocketMQ核心路由机制源码解析 Apache RocketMQ通过NameServer实现了高效的消息路由机制,其核心在于RouteInfoManager类。该组件采用读写锁保证并发安全,维护5个核心数据结构: topicQueueTable - 记录Topic与Queue的映射 brokerAddrTable - 存储Broker基础信息 clusterAddrTable - 管理集群拓扑 brokerLiveTable - 跟踪Broker存活状态 filterServerTable - 保存过滤原创 2025-09-24 11:46:56 · 972 阅读 · 0 评论 -
MQ-05RocketMQ之消息流程
RocketMQ消息流程详解:从生产者到消费者的完整生命周期包含路由发现、消息发送、存储和消费等关键环节。生产者通过NameServer获取路由信息,选择队列并发送消息;Broker接收消息后写入CommitLog并更新ConsumeQueue;消费者拉取消息并提交消费进度。存储阶段采用MappedFile内存映射技术,支持同步/异步刷盘策略,同时构建ConsumeQueue索引加速消费。整个流程通过多组件协作实现高效可靠的消息传递,支持多种队列选择算法和消息压缩方式,确保不同场景下的消息处理需求。原创 2025-09-24 11:41:14 · 487 阅读 · 0 评论 -
MQ-04RocketMQ之架构详解
Apache RocketMQ是一个高性能分布式消息中间件,采用主从架构设计。其核心组件包括:NameServer(轻量级服务发现)、Broker集群(Master-Slave模式的消息存储转发节点)和消息存储机制(CommitLog顺序写+ConsumeQueue逻辑队列)。系统支持同步/异步复制、顺序消息、事务消息等特性,通过CommitLog统一存储消息,ConsumeQueue维护逻辑队列,实现高吞吐(10万级TPS)和低延迟(毫秒级)。架构设计兼顾性能与可靠性,适合金融级应用场景。原创 2025-09-24 11:39:15 · 446 阅读 · 0 评论 -
MQ-03RabbitMQ之算法源码
本文展示了RabbitMQ中两种核心交换器(Direct和Topic)的路由算法实现,以及队列索引机制的源码实现。Direct交换器通过精确匹配路由键和绑定键实现消息路由,Topic交换器则支持通配符模式匹配。队列索引模块采用日志文件和段文件相结合的方式,确保消息持久化和投递状态的可靠记录。所有实现均采用Erlang语言编写,展示了RabbitMQ高效消息路由和持久化的核心机制。原创 2025-09-24 11:30:04 · 505 阅读 · 0 评论 -
MQ-02RabbitMQ之消息流程
RabbitMQ消息流程详解摘要: RabbitMQ消息生命周期包含五个关键阶段:1)消息创建阶段,生产者构建消息内容和属性;2)消息发送阶段,建立TCP连接并通过通道验证权限;3)消息路由阶段,交换器根据类型(Direct/Topic/Fanout/Headers)路由消息;4)消息存储阶段,队列检查持久化设置并写入磁盘;5)消息消费阶段,支持推/拉两种模式,包含手动确认和自动确认机制。消息流程中还包含生产者确认和消费者确认双重保障机制,确保消息可靠传递。整个流程通过TCP连接、通道验证、交换器路由、队列原创 2025-09-24 11:18:12 · 542 阅读 · 0 评论 -
MQ-01RabbitMQ之架构详解
RabbitMQ是一个开源消息代理系统,采用AMQP协议实现分布式系统间的消息传递。其核心架构包含生产者、消费者、连接通道、虚拟主机、交换器(Direct/Topic/Fanout/Headers)和队列等组件,支持集群部署(磁盘/内存节点)和队列镜像保障高可用。通过内存管理、流控机制和网络优化提升性能,同时提供认证授权、SSL加密等安全功能。RabbitMQ架构具有灵活性、可靠性、可扩展性等特点,适合需要复杂路由和高可靠性的企业应用场景。原创 2025-09-24 10:23:05 · 970 阅读 · 0 评论
分享