一杯咖啡的时间,聊聊技术与成长
消息不丢(上):生产端确认与重试
消息丢了,先查生产端:oneway 一把梭、异步回调吞异常、进程崩溃消息还在内存——三种死法逐一排查。同步确认、发送重试、本地消息表,三层防线层层加固。
核心模型:消息怎么从生产者走到消费者
Topic 是逻辑分类,Queue 是物理分片,消费者组是并行与广播的开关,拉模式加长轮询是延迟与压垮之间的折中。这一篇把一条消息的完整旅程拆给你看。
主流 MQ 选型:RocketMQ、Kafka、RabbitMQ 怎么挑
三台 MQ 三种性格:RabbitMQ 灵活轻盈、Kafka 吞吐猛兽、RocketMQ 电商全能。一张对比表加上一条按场景走的决策路径,帮老王把选型纠结一次算清。
引入 MQ 的代价:天下没有免费的午餐
积分翻倍事故只是开始。丢、重、乱序、排查难、运维重,五个代价逐一摆上桌;再给一份「上 MQ 前的四问」决策清单,帮你判断这顿午餐到底该不该吃。
为什么你需要一个消息队列:解耦、异步、削峰
下单接口串行调五个服务,800ms 起步,大促直接雪崩。老王把一条消息队列插进链路:解耦、异步、削峰,三件事各归各位,接口从 800ms 干到 80ms。
收官复盘:一张分库分表作战地图
二十篇走完,从一次八小时的 DDL 谈到老库安全下线——分库分表的决策、设计、迁移、治理收进一张地图。拆分是成本最高的性能手段,但走完这条路你会明白:它逼你理清业务边界、数据流向和容量账本,这些比分片本身更值钱。
踩坑实录:七个分库分表事故清单
机制都懂,事故照出——不带分片键的扫荡查询、跨片归并拖死的分页、分片键选错的全表路由、双写没对齐的数据错乱……七个真实形态的分库分表事故,现象、根因、修复与教训逐一复盘。事故报告里最贵的一句话永远是:早就知道,没做。
分片治理:水位、倾斜与再平衡
拆完不是终点,是另一场长期管理的开始:每个分片的容量水位涨到哪儿了?数据是不是悄悄倾斜了?三年后的容量今天规划够不够?分片系统的健康不靠某次重构,靠一套日日看、月月盘的治理机制。
冷热分离与归档:让主表保持轻盈
互联网数据有个铁律:绝大多数查询只发生在最近的数据上。把两年前的订单请出主表,两亿行立刻瘦到三千万——索引变矮、缓存变热、DDL 变快。归档不是把数据一删了之,冷库选型、限速批次、可回捞的查询入口,一样都不能少。