文章
这里收录了我发布的全部文章。
-
hyper(一):底层 HTTP 实现与 1.0 迁移
hyper 是 Rust 生态中 HTTP/1.1 和 HTTP/2 的底层协议实现, 不是 Web 框架. 1.0 版本做了破坏性重构: 移除内置高层 Server/Client 到 hyper-util, Body 从具体类型变为 trait, 定义了自己的 Service trait (&self 而非 &mut self, 无 poll_ready). hyper 是 axum、reqwest、tonic 的底层引擎.
-
可观测性(二):Rust 可观测性体系的架构理解
文档 observability.md 的代码太多,这篇只讲架构,帮助理解"为什么这样设计"。
-
axum(三):中间件与生产实践-tower 原生的 Web 应用
axum 不发明中间件系统——Router::layer() 直接接受任何 tower::Layer。tower-http 的 Trace/Compression/CORS/Timeout 全部开箱即用。from_fn 让你用普通 async 函数写中间件而不需要实现 Service + Layer。注意 .layer() 只影响它之前添加的路由,顺序是洋葱模型(后加的在外层)。
-
可观测性(一):三大支柱-Logs、Traces、Metrics
出了问题 │ ┌──────────────┼──────────────┐ ▼ ▼ ▼ Metrics Traces Logs "有问题" "哪里慢" "为什么错"