小加号笔记

技术与思考的碎片

外卖订单查询接口反外挂设计

外卖骑手抢单场景中,自动抢单器、位置模拟器等外挂软件屡禁不绝,破坏了正常骑手的公平竞争。本文构建端侧加固 + 请求特征识别 + 业务逻辑防刷 + 风控大脑四层立体防御体系,涵盖请求签名、设备指纹、SSL Pinning、GPS 漂移检测、验证码挑战、蜜罐订单与用户信誉分模型,从提高逆向门槛到实时拦截、再到事后追溯,形成完整的异常流量闭环治理。

阅读全文 »

外卖订单查询接口设计文档

面向外卖骑手的「可配送订单查询」接口,需在千万级日订单量下实现 P99 延迟<100ms 的高可用查询。本文从整体架构出发,拆解如何用 Redis 空间索引(Geo + Sorted Set) 实现 LBS 实时匹配,用 多级缓存 + 异步解耦 应对午晚高峰流量冲击,并深入探讨高峰期消息积压的应急扩容、消费优化、业务降级与兜底对账策略,形成完整的稳定性保障闭环。

阅读全文 »

MySQL 是最广泛使用的开源关系型数据库,其默认存储引擎 InnoDB 凭借 B+ 树索引、MVCC 多版本并发控制和完善的崩溃恢复机制,支撑了互联网绝大多数 OLTP 业务。本文从核心概念出发,系统梳理 InnoDB 的存储结构与页模型、B+ 树索引原理(聚簇/二级/覆盖/联合索引、回表、最左前缀、索引下推)、事务隔离与 MVCC 实现细节、行锁/间隙锁/Next-Key Lock 的加锁规则、redo/undo/binlog 三日志与两阶段提交、主从复制与高可用方案,以及慢查询优化、分库分表等工程实践,是一份覆盖原理到实践的完整知识图谱。

阅读全文 »

限流(Rate Limiting) 是高可用系统最基础的保护手段:当下游扛不住、上游突然爆发流量、或外部恶意攻击时,通过限制单位时间内的请求量,保证核心服务不被打垮。

本文从「为什么需要限流」出发,依次讲透四大经典算法、单机与分布式实现、限流的位置(网关/应用/接口)、以及与熔断/降级的协同。配合「短信发送设计」一文中的限流案例(60s/日 10 条)食用更佳。

本文脉络:
一 为什么需要限流
二 限流的四个核心问题(用什么限、限在哪、限多少、超限怎么办)
三 四大经典算法(计数器/滑动窗口/漏桶/令牌桶)原理与对比
四 分布式限流:从单机到 Redis
五 限流的位置与分层(网关 / 应用层 / 接口层)
六 常见限流框架(Guava / Sentinel / Nginx)
七 限流后的处理策略(拒绝 / 排队 / 降级)
八 与熔断、降级、重试的协同(稳定性三板斧)
九 常见问题
阅读全文 »

面试题「设计一个短信发送系统」看似简单——实现频率限制,但往深处挖可以涉及并发安全、分布式限流、消息队列削峰、幂等性、多通道路由、安全合规与监控成本等一整套后端系统设计能力。

本文从最初有缺陷的实现出发,逐步分析并发竞态、内存泄漏等问题,给出单机与分布式两套完整解法,最终演进到生产级短信系统的完整架构。

阅读全文 »

Elasticsearch(简称 ES)是基于 Lucene 的分布式搜索与分析引擎,凭借倒排索引实现毫秒级全文检索,并支持聚合分析、地理查询和向量检索(kNN)。本文从核心概念出发,系统梳理 ES 的存储结构、写入与查询流程、BM25 评分、HNSW 向量索引原理、聚合与集群分片机制,以及脑裂防护、故障分级等分布式要点,是一份覆盖原理到实践的完整知识图谱。

阅读全文 »
0%