一杯咖啡的时间,聊聊技术与成长
核心概念:Index、Document、Shard 与 Replica
从 MySQL 的世界观平移进 ES:表变索引,行变文档。但 shard 是新物种——建索引时定死的主分片数决定了路由公式,也决定了后期改起来的成本。概念地图一次画清。
倒排索引:正排查我,倒排查谁
手工倒排表只是玩具。真实的引擎长这样:三段式分词器、FST 词典、压缩倒排表加跳表,再配上管排序聚合的 doc values。拆开看每块零件,搜索为什么快就有答案了。
LIKE 查不了「燕麦拿铁」:为什么需要 Elasticsearch
用户搜「燕麦拿铁」,搜索框返回 0 结果,商品明明躺在库里。LIKE 前缀通配符走不了索引、不懂分词、性能随数据量线性劣化——这一篇把倒排索引请出场。
收官复盘:一张消息队列作战地图
20 篇走完,把消息队列的全部内容收进一张地图:症状到篇目的排查索引、按场景的阅读路径、三条心法与上线检查清单。收官不散场,地图常翻常新。
陷阱清单:丢失、重复、乱序的一线复盘
七起真实风格的事故复盘:吞异常丢消息、自动提交踩空、Redis 幂等失效、Rebalance 重复扣款、毒消息卡队列、大消息打爆 Broker、误重置位点。每起都给出根因与修复。
实战场景集:订单超时、秒杀、数据同步、最终一致
理论装进业务才算数。四个高频场景的完整方案:延迟消息三保险、秒杀的预扣库存、binlog 订阅式数据同步、支付回调的最终一致——每道菜都标了用了系列里哪几味药。
监控与调优:积压告警与参数清单
MQ 健康不靠感觉,靠仪表盘:发送耗时 P99、消费 lag 与追平时间、死信量,三块表盯到底。再配一份发送与消费的参数调优清单,把性能从玄学变成台账。
高可用与容灾:集群部署与机房规划
99.99% 意味着全年只能停 52 分钟,单机房冗余扛不住机房级故障。冷备、异步复制、双活三档容灾怎么选,脑裂怎么防,切换演练为什么比预案文档更重要。
RocketMQ 架构:NameServer、主从与 Dledger
四个角色撑起十万级吞吐:无状态的 NameServer 用最终一致换简单,CommitLog 大文件混写保住顺序写红利,Dledger 用 Raft 把手动切换变成自动选主。一篇看懂 RocketMQ 的骨架。