系列文章:
总目录索引:九析带你轻松完爆 istio 服务网格系列教程
目录
1 前言
2 邀约
3 Envoy 线程模型
4 监听器连接负载均衡
1 前言
如果你对博客有任何疑问,请告诉我。
2 邀约
你可以从 b 站搜索 “九析”,获取免费的、更生动的视频资料:
3 Envoy 线程模型
Envoy 是单进程内包含多线程的架构设计。单进程内部包含两种线程-主线程(master thread)和工作线程(worker thread)。主线程的作用是控制、协调任务;工作线程的作用是执行监听、过滤和转发。如下图所示:
Envoy 进程启动时会开启监听端口(listener),一旦监听器接受了客户端的连接,此连接的生命周期就会绑定到 Envoy 内的一个工作线程上。由此可知,Envoy 被设计成多个单线程并行,100% 无阻塞的模式。对于大多数工作负载,我们建议将工作线程的数量配置为等于计算机上硬件线程的数量。查看 Linux 操作系统最大进程数命令为:
sysctl kernel.pid_max 或 cat /proc/sys/kernel/pid_max
4 监听器连接负载均衡
默认情况下,Envoy 工作线程之间相互独立且并无联系,这意味着所有工作线程都独立尝试在监听器上接受连接,并依靠内核在线程之间做负载均衡。对于大多数工作负载,内核对这些连接的负载均衡处理会非常出色。但是,对于某些工作负载(例如,服务网格 HTTP2 / gRPC 出口),必须强制 Envoy 在工作线程和连接之间负载均衡,为了支持上述特性,Envoy 允许在其监听端口上针对连接设置不同种类的负载均衡策略。
来源:oschina
链接:https://my.oschina.net/u/4288355/blog/4330176