系统设计
典型业务功能、系统集成、可观测性,以及工程里用得上的算法。
从哪里开始
先读可观测性与系统分级,它们决定了上线后能不能看清系统、该为哪些系统投入;再按需读功能设计与算法套路。依赖任务的执行接在算法套路的拓扑排序之后读;排序与 Top K、均摊代价两篇讲算法落到 Java 集合上的实际代价。
文章
01从「能跑」到「可观测」三种信号的分工、高基数陷阱、采样策略与 SLO 告警→02系统分级与技术投入按「坏了会怎样」定级,每一级对应可检查的工程清单,依赖会传递等级→03典型业务功能设计购物车、点赞与排行榜同分问题、附近的人、抢红包二倍均值法实测→04短链服务:短码怎么生成只是开头哈希截断的碰撞、同一个长链接的并发创建、301 与 302 的取舍、目标地址校验→05位图、布隆过滤器与前缀树海量判存与文本过滤:内存差 219 倍、误判率实测、前缀树快 160 倍→06认证与系统集成登录失败保护、单点登录的方案选择、跨公司对接的签名与防重放→07工程里用得上的十个算法套路滑动窗口、前缀和、二分答案、堆、并查集等,每个配一个真实业务需求→08只要前 100 名,为什么要把一百万条全排一遍减法比较器溢出、同分规则、堆与快速选择的取舍、分片 Top K 为什么会漏→09平均 86 纳秒的 put,为什么有一次要 21 毫秒均摊 O(1) 的扩容尖峰、new HashMap<>(n) 与 newHashMap 的区别、小 N 时扫描与哈希的交叉点→10依赖任务怎样安全地跑起来发布前报出真实的环、稳定顺序、并发上限下的调度、失败传播的两种策略与重试幂等键→
相关专题
- Domain Driven Kit · Tracer — 把 traceId 返回给调用方