【Envoy 数据面】选型收束:机制排除树与系列开放问题
用机制排除树收束 Envoy 相对 Nginx/HAProxy、sidecar / 节点级 Envoy / eBPF 的选型;回顾阅读路径,并列出 xDS 规模、sidecar 税、Wasm 与 HTTP/3 等系列级开放问题。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 32 篇文章 · 返回首页
用机制排除树收束 Envoy 相对 Nginx/HAProxy、sidecar / 节点级 Envoy / eBPF 的选型;回顾阅读路径,并列出 xDS 规模、sidecar 税、Wasm 与 HTTP/3 等系列级开放问题。
补齐站内 Envoy 单篇地图与 Mesh/网关选型之间的数据面内核层:Main/Worker、FilterChainMatch、HCM、Cluster/连接池、xDS warming 与 Hot restart,并以排障与选型收束。
用机制排除树收束 HAProxy 相对 Nginx、Envoy、eBPF 的选型;回收本系列阅读路径,并列出 stick-table 规模、QUIC/H3 成熟度、reload 与 Runtime 混用可观测等开放问题。
定位 HAProxy 相对 network/56 配置运维、Nginx 多进程与 Envoy Filter/xDS 的生态位;钉住请求路径、线程共享、协议表示、动态运维、失败归因五条坐标系,并给出 14 篇阅读路线。
钉住 HAProxy 单进程多线程模型:每线程事件循环、连接单线程服务;对照 nbproc 下 stick-table 不共享,以及 Nginx 多进程与 Envoy Main/Worker;说明 poller 线程上阻塞的软警告。
说明 HAProxy frontend 与 bind 如何落到监听套接字;accept 之后 FD 与线程的关系;SO_REUSEPORT / cpu-map 与多线程接入;以及 expose-fd listeners 作为 seamless reload 的前置,并点到 content switching 入口而不做 ACL 百科。
厘清 connection → session → stream 与 mux 的分层;对比 TCP pass-through 与 HTTP mux;说明超时挂在哪一层对象上,以及失败归因如何区分连接级与流级;源码目录级指向 stream 与 mux_*。
说明 HTX 作为版本无关的内部 HTTP 表示如何分离解析与处理;http-request 改写/重定向落在 HTX 而非永恒原始缓冲;HTTP/1 与 HTTP/2 在 mux 边界的分叉;以及相对纯 L4 路径的成本模型——非应用层菜谱。
把 ACL 与 http-request / use_backend 当作数据面机制:说明连接期到 L7 的求值顺序、动作副作用如何改写后续条件,以及与 stick-table 限流/标记的耦合点;不写 ACL 关键字百科。
把 balance 算法、server maxconn/队列与 http-reuse 当作数据面机制:说明无持久化信息时如何选主、队列满与无 server 时如何失败,并轻对照 Envoy cluster/连接池边界。
说明 stick-table 的键类型、size/expire/store、nbthread 共享内存与 nbproc 不共享的边界,以及 peers 复制与 reload 继承;覆盖表满等容量失败模式。
区分健康检查引擎与数据面请求调度:说明默认 TCP 探活、httpchk/tcp-check 规则集、agent-check 的独立控制面语义,以及与 soft-stop/排空的交互提示;不写伪造检查日志。
区分 TLS 终结与 mode tcp 透传:说明握手相对线程/FD 的位置、会话缓存对握手成本的高层含义,以及与 HTTP 路径的交界;不是证书运维手册。
按 HAProxy 3.4.3 Management Guide 钉住 Runtime API 能改什么、不能改什么;区分 worker stats socket 与 master CLI,说明热改与 seamless reload 的语义边界。
按 HAProxy 3.4.3 Management Guide 拆解 -x / expose-fd listeners / master-worker sockpair 的 listen FD 交接、SIGUSR1 soft-stop 排空,以及 stick-table/peers 在 reload 下的保留边界;对照 Nginx 与 Envoy hot-restart。
用 accept/bind、stream/mux、ACL/路由、上游/健康、reload/runtime 五轴组织 HAProxy 生产排障;说明 show info/stat/sess、日志与 stats 页面落在哪一层,不粘贴伪造转储。
补齐站内 HAProxy 工程单篇与 Nginx/Envoy 选型之间的数据面内核层:线程组、stream/mux/HTX、ACL 求值、stick-table、health-check、Runtime API 与 seamless reload,并以排障与选型收束。
定位 Envoy 相对 Nginx/HAProxy 静态配置代理与 Mesh 选型叙事的生态位;钉住请求路径、配置快照、FilterChainMatch、xDS warming、上游资源五条坐标系,并给出与 network/57 的分工及 16 篇阅读路线。
钉住 Envoy 单进程多线程模型:Main 管 xDS/Admin,Worker 绑连接终生;Event::Dispatcher 与 Thread Local Storage 如何把配置变成每线程可读快照,以及快照解决什么、解决不了什么。
拆解 Envoy accept 之后到 network filter 之前:listener filters 如何 enrich 元数据,FilterChainMatch 如何按 SNI/ALPN/目的地址选链,以及选错 chain 的典型失败模式。
在 FilterChain 已选定之后,说明 network filter 如何在连接字节流上工作、读写水印如何反压、连接生命周期事件,以及 TCP Proxy 相对 HTTP Connection Manager 的路径分叉。
说明 HttpConnectionManager 如何把字节变成协议无关的 stream 事件;HTTP/1/2/3 codec 的职责边界;流与连接生命周期差异;以及 codec 错误与半关闭语义的失败模式。
钉住 HCM 内 HTTP filter 的 decoder/encoder 顺序、Router 作为终端过滤器的含义,以及 retry/timeout 挂在路由与 Router 上的语义;说明「Router 之后再挂 filter」为何无效,并为 Cluster 上游选型铺路。
说明 Cluster 作为上游逻辑组的模型,拆开 priority / locality 权重与 subset 元数据匹配如何缩小可选主机集,并给出主动健康检查相对 outlier 的入口分工;为连接池与熔断篇铺路。
拆解 HTTP 连接池按协议/线程分池的方式,以及 cluster 级 circuit breaker 与 outlier ejection 如何在路由与 LB 都正确时仍让请求以 503 / overloaded 失败;衔接到 xDS 资源树。
把 Listener、RouteConfiguration、Cluster、ClusterLoadAssignment(及 SDS)画成依赖树,说明资源命名如何串起引用、warming 与 make-before-break 顺序为何决定短暂黑洞,并衔接到 ADS/SotW/Delta。
拆解 xDS 四变体(SotW/Incremental × 分类型流/ADS)、ACK/NACK 与 version/nonce 语义,以及 NACK 后控制面与数据面各自会怎样;钉住 ACK≠流量已切新路由。
拆解 Listener/Cluster warming、SDS 证书轮转与 xDS 热更新边界;说明为何协议 ACK 之后流量仍可能走旧路由或 503,并区分 xDS 热更新与 Hot restart。
拆解 Envoy Hot restart 的 UDS RPC、共享内存统计、父子 listen socket 交接与 drain 时间线;对照 xDS-only 热更新,说明何时必须进程级重启。
从请求路径机制位置出发,对照 Wasm、Lua、ext_authz 与 local/global rate limit 的隔离、失败语义与安全边界;外链 Wasm 架构与过载保护,不写 SDK 教程。
把 Envoy v1.39.0 的 stats、access log、tracing 钉回请求路径与 admin 统计树:各自能归因什么、不能归因什么,以及与可观测性系列的分工边界。
按第 1 篇五条坐标系拆解无上游、路由未生效、证书/SDS、warming 黑洞、hot restart 与连接泄漏;给出 admin 核对顺序与观测信号入口,不虚构延迟数字。