边车和服务之间怎么说话最快:HTTP、gRPC、UDS 的一场同机较量

Posted on 日 02 8月 2026 in Tech • Tagged with journal, sidecar, grpc, http, uds, service-mesh

边车(sidecar)和主服务跑在同一个 Pod 里,只隔着一层内核,却常常还在用 localhost:8080 这种"绕远路"的方式通信。这篇把同机通信的三条主流路子——HTTP over TCP、gRPC、以及走 Unix Domain Socket(UDS)——的技术细节、延迟、吞吐、序列化开销和运维成本摊开对比;并专门讨论迁移成本最低的 HTTP over UDS 及其双向通信短板,给出 SSE / WebSocket / gRPC over UDS 三档解法。最后附一张选型表和落地清单,帮你在真实场景里选对那条最短的路。


Continue reading

DPoP 详解:给浏览器里的令牌也上一把“偷不走”的锁

Posted on 六 01 8月 2026 in Tech • Tagged with journal, blog, security, oauth, jwt, dpop, zero-trust

mTLS + 证书绑定令牌很安全,但浏览器和 App 里没法优雅地管客户端证书。DPoP(RFC 9449)就是为公网客户端准备的那把锁:客户端自己生成一对公私钥,每次请求都附上一个用私钥签名的 DPoP proof。本文把 DPoP 的每个字段、两段流程、防重放机制和常见坑一次讲透,并回答“服务间调用要不要用 DPoP”,顺带讲清 SPIFFE JWT-SVID 的定位。


Continue reading

令牌被偷了也白搭:说清楚 PoP 与证书绑定令牌

Posted on 六 01 8月 2026 in Tech • Tagged with journal, blog, security, oauth, jwt, mtls, dpop, zero-trust

Bearer Token 最大的毛病是“谁捡到谁能用”。本文用大白话讲清两个专治盗用的概念——PoP(证明我是令牌的主人)和 Certificate-Bound Token(令牌只认这张证书),顺带把它们跟 mTLS、DPoP、Kubernetes、SPIFFE 之间的关系理顺。


Continue reading

给微服务造一个 STS:像 AWS 一样发放临时凭证

Posted on 六 01 8月 2026 in Tech • Tagged with journal, blog, security, microservices, sts, jwt, oauth

微服务之间到底该怎么互相证明“我是谁、我能干什么”?本文借 AWS STS 的思路,拆开临时凭证的门道,对比 JWT+OIDC 与 AWS 式 AssumeRole 两条路线,并给出可以直接跑起来的最小实现。


Continue reading

传统的软件教程,在 AI 时代该与时俱进了

Posted on 五 31 7月 2026 in Tech • Tagged with journal, AI, documentation, developer-experience, tutorial

写了大半辈子技术文档,我一直用“教程 + 例子 + FAQ”那一套教别人用 API/SDK,后来又加了 AI skill,可还是不够直观。这篇聊聊我的反思:AI 时代的软件教程,应该是可交互、可执行、有 AI 随时答疑纠错的“活教程”——sandbox 演示 + 类 Notebook 的边看边跑 + AI 助教,能把市面上大多数静态教程甩开一条街。


Continue reading

深入 MySQL 的锁:从行锁、间隙锁到度量驱动的排障

Posted on 四 30 7月 2026 in Tech • Tagged with mysql, innodb, lock, 锁, 事务, 并发, metrics-driven-development, 度量驱动开发, monitoring, distributed-lock, 分布式锁, 死锁, 数据库

MySQL 的锁是很多线上事故的“隐形主角”——超卖、死锁、慢查询拖垮整个库,往往都能追到锁上。本文从并发下为什么需要锁讲起,把 InnoDB 的全局锁、表锁、MDL、行锁、间隙锁、Next-Key Lock 一层层拆开,再用 Metrics-Driven Development 的方式定义业务、应用和数据库指标,演示如何发现、定位、改进和验证锁问题,最后讨论 MySQL、Redis、ZooKeeper/etcd 分布式锁的边界。


Continue reading

后端工程师的 AI Infra 学习路线

Posted on 四 30 7月 2026 in Tech • Tagged with AI, AI Infra, career, infrastructure, learning

一份可实操的 AI Infra 自学路线——包含六阶段的知识地图、每阶段的推荐资源、动手实验和验收标准,附带完整的练级手册 Checklist,让后端工程师按图索骥,3~4 个月转型 AI Infra。


Continue reading

K8s 是怎么被攻破的:威胁模型与攻击树入门

Posted on 三 29 7月 2026 in Tech • Tagged with kubernetes, security, threat-modeling, attack-tree, k8s, cloud-native, STRIDE

把 K8s 集群想成一座城:apiserver 是市政大厅,etcd 是档案馆存着所有户口和钥匙,kubelet 是每个街区的物业管家。攻击者很少一步登天,更多是从一个不起眼的 Pod 开始,一格一格往上爬,直到拿到"城主令牌" cluster-admin。这篇借 ControlPlane 与 Kubernetes 官方安全审计的威胁模型,用 STRIDE 逐个拆解核心组件的风险,再画一棵"从一个 Pod 打到集群管理员"的攻击树,最后给一份能照着做的加固清单。


Continue reading

Zanzibar 精读:Google 如何在十毫秒内回答“你能看这份文档吗”

Posted on 一 20 7月 2026 in Tech • Tagged with authorization, zanzibar, rebac, distributed-system, consistency, spanner, security, paper-reading

Zanzibar 最难的并不是把权限存成关系元组,而是在全球规模下同时守住用户意图、低延迟和高可用。本文精读 Google 2019 年论文,拆解关系模型、zookie 一致性协议、递归查询、Leopard 索引与热点治理,并给出一份普通团队可以直接复用的设计清单。


Continue reading

用 Quarto + Notebook 写一本"能跑起来"的技术书

Posted on 一 20 7月 2026 in Tech • Tagged with quarto, jupyter, notebook, mermaid, technical-writing, AI-agent

写技术教程最尴尬的一点:文字讲得头头是道,读者一跑代码全是坑。我这些年攒了不少笔记,一直想找个既能写概念、又能嵌可运行实验、还能一键出网站/PDF/EPUB 的工具。Quarto + Notebook 这套组合基本满足了我的贪心。本文用一个"AI Agent Loop 入门教程"做实例,从二十行的最小循环骨架,一路加料到接真模型、上安全文件工具、加记忆和任务验收的可用 Agent,演示怎么把 .qmd 文字章节、.ipynb 可运行实验、Mermaid 时序图拼成一本能在线读、能导出出版的书。


Continue reading

如何为你的服务创建统一的授权中心

Posted on 一 20 7月 2026 in Tech • Tagged with authorization, microservice, oauth2, opa, openfga, spiffe, keycloak, zero-trust, security, architecture

微服务各管一套权限,最后往往没人说得清谁能调用谁。本文给出统一授权中心的分层架构、协议选择、典型实例与演进路线,重点讲清身份、决策和执行如何分工。


Continue reading

大厂 MySQL 建表军规:那些评审会上被打回来的坑

Posted on 六 18 7月 2026 in Tech • Tagged with journal, MySQL, database, engineering

一份 MySQL 数据库设计评审清单,我把它拆成"建表""查询""特殊约束"三块,并逐条讲清楚背后的原因——为什么禁自增主键、为什么禁外键、为什么用 DATETIME 不用 TIMESTAMP、为什么少碰 JSON 和大字段。规则好背,难的是知道每条规则在防哪个坑。文末附一份可直接抄的自查清单。


Continue reading

调光旋钮为什么输给了单向门:Sigmoid 是怎样被 ReLU 取代的

Posted on 四 16 7月 2026 in Tech • Tagged with AI, sigmoid, relu, activation-function, neural-network, gradient-vanishing

Sigmoid 曾是神经网络最经典的激活函数,如今深层网络的隐藏层却几乎都换成了 ReLU。本文用调光旋钮和单向门的类比,从“为什么需要激活函数”一路讲到导数、梯度消失,最后说清 ReLU 凭什么把它挤下主力位置——数学基础一般也能跟到底。


Continue reading

怎么给自己搭一个第二大脑

Posted on 三 15 7月 2026 in Tech • Tagged with AI, second-brain, RAG, research, knowledge-management, productivity, methodology

第二大脑不是网盘,也不是某个 App,而是一套"采集、提炼、连接、核对、内化、复用"的能力回路。本文讲怎么用你已有的工具——ChatGPT/Claude、本地 RAG、命令行脚本、Jupyter、笔记软件和自建 Wiki——把这套回路亲手搭起来,并接上"问、猜、跑、看、讲、测"六字诀。NotebookLM 只是众多参照物之一。


Continue reading

别只让 AI 替你写代码:用Vibe Learning来激活你的大脑

Posted on 二 14 7月 2026 in Tech • Tagged with AI, learning, Jupyter, LLM, cognitive-science, algorithm

AI 最有意义的用途,不是替人更快地交作业,而是缩短“提问、猜想、实验、观察、解释、测试”的学习闭环。本文从认知心理学出发,用 Jupyter Notebook + LLM 演示如何把公式、算法和数据结构从纸面符号变成可以操纵、观察和验证的对象。


Continue reading

风起于青萍之末(下):从 XOR 到神经网络与 LLM

Posted on 二 14 7月 2026 in Tech • Tagged with AI, perceptron, neural-network, deep-learning, backpropagation, transformer, LLM

单个感知机只能画一条直线,连四条数据构成的 XOR 都解决不了。可正是这次失败,把人们引向隐藏层、非线性激活和反向传播。本文从 XOR 出发,讲清多层网络为什么能够学习新表示,再沿着这条思想谱系走到 Transformer 与 LLM。


Continue reading

风起于青萍之末(上):感知机如何学会画一条线

Posted on 二 14 7月 2026 in Tech • Tagged with AI, perceptron, machine-learning, activation-function, linear-classifier

今天的 LLM 动辄数十亿参数,其思想源头之一却是十几行代码就能实现的感知机。本文用垃圾邮件打分、门卫和画线的类比,讲清输入、权重、偏置、激活函数、学习规则与收敛边界,并给出一个可运行的 NumPy 最简实现。


Continue reading

详解 AEAD 与 AES-GCM:不只加密,还要防篡改

Posted on 一 13 7月 2026 in Tech • Tagged with security, cryptography, aead, aes-gcm

加密只能隐藏内容,不能证明数据与业务上下文没有被调包。本文用加密信封的类比讲清 AEAD、AAD、nonce、CTR 与 GHASH,并给出可运行的 Python 示例和上线检查清单。


Continue reading

服务治理是工程问题,不是纪律问题

Posted on 五 10 7月 2026 in Tech • Tagged with journal, SRE, reliability, service-governance

2017 年 AWS 一个工程师敲错一条命令,让小半个互联网黑屏四小时;Knight Capital 一次没同步好的部署,45 分钟烧掉 4.4 亿美元。服务治理的本质是工程问题:能自动化的规则、约束、检查、测试,就别指望人半夜手动去跑。清单革命固然好,但清单要人看、人执行,而人从来不是百分百可靠的。这篇聊聊业界的标准、最佳实践、成功案例和典型事故。


Continue reading

struct 到底实现了哪些接口?让 Go 的隐式接口更友好一点

Posted on 五 10 7月 2026 in Tech • Tagged with Go, interface, gopls, golangci-lint, uml, plantuml, mermaid, best-practice, backend

Go 的隐式接口(duck typing)写起来很爽,但代价是"看不见"——一个 struct 到底实现了哪些接口,光看代码根本一眼看不出来。这篇不改语言、不等官方,从编译期断言、gopls 双向跳转、golangci-lint、go generate 到自己写工具生成 UML 类图(附开源项目 gouml),一层层把可发现性补回来,附可跑的例子和一份可落地清单。


Continue reading