listener

Envoy配置在单个进程中支持任意数量的listener。通常,无论配置了多少listener,我们都建议每台计算机运行一个Envoy。这样可以简化操作并提供单一统计数据。Envoy支持TCP和UDPlistener。

TCP协议

每个listener都独立配置有一些数量filter chains,其中根据其匹配条件选择单个chain 。单个filter chains由一个或多个网络级别(L3 / L4) filter组成。在listener上收到新连接时,将选择适当的filter chain,并实例化已配置的连接本地filter堆栈,并开始处理后续事件。通用listener体系结构用于执行Envoy所使用的绝大多数不同代理任务(例如,速率限制,TLS客户端身份验证,HTTP连接管理,MongoDB嗅探,原始TCP代理)等)。

listener还可以选择配置一些listener filter。这些 filter在网络级 filter之前进行处理,并且有机会操纵连接元数据,通常会影响以后的 filter或群集如何处理连接。

listener也可以通过listener发现服务(LDS)动态获取。

listener配置。

UDP协议

Envoy还支持UDPlistener,尤其是UDPlistener filter。UDP listener filter每个工作程序实例化一次,并且对于该工作程序是全局的。每个listener filter都会处理工作人员在端口上侦听的每个UDP数据报。实际上,使用SO_REUSEPORT内核选项配置UDPlistener,这将使内核将每个UDP 4元组一致地散列到同一工作程序。如果需要,这可以使UDPlistener filter面向“会话”。UDP代理listener filter是此功能的内置示例。

Last updated