从零构建可观测性体系:Metrics、Tracing 与 Logging 的分层哲学
监控不是把三个系统拼在一起。本文从一次凌晨三点的告警风暴讲起,重新划分三类信号的职责边界,给出一套可以在中小团队落地的最小可用方案。
监控不是把三个系统拼在一起。本文从一次凌晨三点的告警风暴讲起,重新划分三类信号的职责边界,给出一套可以在中小团队落地的最小可用方案。
从一条丢包的 AppendEntries 讲起。本文实现并压测了支持 ReadIndex 与 Lease Read 的教学级 KV 存储,分析两种读策略在网络分区下的行为差异。
为什么你的 Future 在堆上反复横跳?用 perf 和火焰图追查 tokio 任务调度的真实开销,以及何时应该回到同步代码。
不是 GC,不是数据库,最后凶手是连接池里的 DNS 缓存。完整复盘从假设、埋点、压测到修复的全过程,附排查清单。
lua 配置从 40 行膨胀到 1200 行又删回 300 行的全过程。哪些插件值得留下,哪些只是配置强迫症。
博客会骗人,RFC 不会(大概)。从 RFC 7413 里挖出三个主流教程都讲错的细节,聊聊一手资料的阅读方法。
当某个节点被热点 key 打爆时,一致性哈希救不了你。对比 Ring Hash、Maglev 与 Rendezvous 三种方案的生产实测数据。
把 borrow checker 的 90% 报错映射到你已经懂的 GC 直觉上:什么时候 clone,什么时候 Arc,什么时候承认自己需要重构。
教学级 Raft KV 存储:MIT 6.5846 全实验的逐行注释实现,含 ReadIndex、Lease Read 与快照压缩,配套 7 篇图文解析。
基于 eBPF 的零拷贝网络延迟观测器:挂到内核上就能看到每个 syscall 的真实耗时,单核轻松扛住 10Gbps。
OpenTelemetry 尾部采样策略集:支持按错误码、延迟分桶与路由白名单组合采样,错误链路 100% 保留。
打磨六年的 Neovim / tmux / zsh 配置,一键繁殖脚本。内含一份「为什么这么配」的长篇 README,欢迎抄作业。
Go 1.23 的 range over func 真香,配合 iter 包写管道终于不用回调套回调了。周末整理一篇笔记。
把家里的 N100 小主机刷了 Proxmox,现在跑着 7 个容器 + 1 个 HomeLab 面板,整机功耗 6W,比路由器还安静。
面试被问「如何设计全局唯一 ID」,聊到 Snowflake 的时钟回拨时发现自己的答案有漏洞,回来重读了一遍 Twitter 原文,已补充到旧文里。