线程模型¶
Envoy 使用单进程-多线程架构。一个 primary 线程处理各种轻量协调任务,同时多个 worker 线程处理监听、过滤、转发。 当一个连接被监听器接受,连接的剩余生命周期将绑定在当前 worker 线程。这使得 Envoy 大部分代码近似单线程运行(高度并行), 只有少量的复杂代码用于实现 worker 线程之间的协调。Envoy 基本实现了 100% 的非阻塞,对于大多数工作负载, 我们建议将 worker 线程数配置为物理机器的线程数。
Envoy 使用单进程-多线程架构。一个 primary 线程处理各种轻量协调任务,同时多个 worker 线程处理监听、过滤、转发。 当一个连接被监听器接受,连接的剩余生命周期将绑定在当前 worker 线程。这使得 Envoy 大部分代码近似单线程运行(高度并行), 只有少量的复杂代码用于实现 worker 线程之间的协调。Envoy 基本实现了 100% 的非阻塞,对于大多数工作负载, 我们建议将 worker 线程数配置为物理机器的线程数。