随笔分类 - envoy_v1.23.0
摘要:流量分割 HTTP router过滤器支持在一个路由中指定多个上游具有权重属性的集群,而后将流量基于权重调度至此些集群其中之一; 类似流量迁移,流量分割中,分配给每个集群的权重也可以使用运行时参数进行调整; 流量分割配置格式 -- routes - match: {...} route: weigh
阅读全文
摘要:流量迁移 通过在路由中配置运行时对象选择特定路由以及相应集群的概率的变动,从而实现将虚拟主机中特定路由的流量逐渐从一个集群迁移到另一个集群; 在路由匹配方面,Envoy在检测到第一个匹配时即终止后续检测;因而,流量迁移应该如此配置 配置两个使用相同的match条件的路由条目 在第一个路由条目中配置r
阅读全文
摘要:filter_chains配置段 https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener_components.proto#envoy-v3-api-msg-config-listener-v3-f
阅读全文
摘要:Envoy初始配置 https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/bootstrap/v3/bootstrap.proto#config-bootstrap-v3-bootstrap node: {...} static_reso
阅读全文
摘要:listeners配置段 https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener.proto#envoy-v3-api-msg-config-listener-v3-listener -- list
阅读全文
摘要:HTTP 路由功能 Envoy 包含一个 HTTP路由器过滤器,可以安装它来执行高级路由任务。这对于处理边缘流量(传统的反向代理请求处理)以及构建服务 Envoy 网格(通常通过主机/授权 HTTP 标头上的路由以到达特定的上游服务集群)都很有用。Envoy 还可以配置为正向代理。在转发代理配置中,
阅读全文
摘要:static_resources: listeners: name: ... address: {...} additional_addresses: [] stat_prefix: ... filter_chains: filter_chain_match: {...} filters: name
阅读全文
摘要:http_connection_manager配置段 https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_ma
阅读全文
摘要:route_config所在配置段 https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pro
阅读全文
摘要:静态配置框架 static_resources: listeners: name: ... address: {...} additional_addresses: [] stat_prefix: ... filter_chains: filter_chain_match: {...} filter
阅读全文
摘要:HTTP 过滤器 与网络级过滤器堆栈非常相似,Envoy 在连接管理器中支持 HTTP 级过滤器堆栈。可以编写对 HTTP 级别消息进行操作的过滤器,而无需了解底层物理协议(HTTP/1.1、HTTP/2 等)或多路复用功能。HTTP 级别过滤器分为三种类型: 解码器:当连接管理器解码请求流的部分(
阅读全文
摘要:HTTP连接管理 Envoy通过内置的L4过滤器HTTP连接管理器将原始字节转换为HTTP应用层协议级别的消息和事件,例如接收到的标头和主体等,以及处理所有HTTP连接和请求共有的功能,包括访问日志、生成和跟踪请求ID,请求/响应头处理、路由表管理和统计信息等; HTTP 协议 Envoy 的 HT
阅读全文
摘要:雪崩效应 多级服务调度用场景中,某上游服务因网络故障或服务繁忙无法响应请求时很可能会导致多级上游调用者大规模级联故障,进而导致整个系统不可用,此即为服务的雪崩效应; 服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者”的不可用,并将不可用逐渐放大的过程; 服务网格之上的微服务应用中,多级调用
阅读全文
摘要:连接池 对于 HTTP 流量,Envoy 支持在底层有线协议(HTTP/1.1、HTTP/2、HTTP/3)之上分层的抽象连接池。使用过滤器代码不需要知道底层协议是否支持真正的多路复用。 连接池支持的协议 HTTP/1.1 HTTP/1.1 连接池根据需要获取到上游主机的连接(直到断路限制)。当
阅读全文
摘要:负载均衡概述 什么是负载均衡 负载均衡是一种在单个上游集群内的多个主机之间分配流量的方法,以便有效地利用可用资源。有很多不同的方法可以实现这一点,因此 Envoy 提供了几种不同的负载平衡策略。在高层次上,我们可以将这些策略分为两类:全局负载均衡和分布式负载均衡。 分布式负载均衡 Envoy自身基于
阅读全文
摘要:异常值检测 异常值检测和弹出是动态确定上游集群中的某些主机是否与其他主机不同,并将它们从健康 负载平衡集中删除的过程。性能可能沿着不同的轴,例如连续失败、时间成功率、时间延迟等。异常值检测是被动健康检查的一种形式。Envoy 还支持主动健康检查。被动和主动健康检查可以一起或单独启用,并构成整体上游健
阅读全文
摘要:Upstreams 健康状态检测 健康状态检测用于确保代理服务器不会将下游客户端的请求代理至工作异常的上游主机; Envoy支持两种类型的健康状态检测,二者均基于集群进行定义; 健康状态检测类型 主动检测 主动检测(Active Health Checking):Envoy周期性地发送探测报文至上游
阅读全文
摘要:故障处理机制 Envoy提供了一系列开箱即用的故障处理机制; 超时(timeout) 有限次数的重试,并支持可变的重试延迟 主动健康检查与异常探测 连接池 断路器 所有这些特性,都可以在运行时动态配置; 结合流量管理机制,用户可为每个服务/版本定制所需的故障恢复机制;
阅读全文
摘要:DNS解析 许多 Envoy 组件解析 DNS:不同的集群类型( 严格 dns、 逻辑 dns);动态转发代理系统(由集群和过滤器组成);udp dns 过滤器等。Envoy 使用c-ares作为第三方 DNS 解析库。envoy.restart_features.use_apple_api_for
阅读全文