Envoy 代理路由与流量治理(Listener、Cluster、Route、Rate Limit)概述Envoy 通过 Listener 接受流量、Route 决策请求路径、Cluster 访问后端;配合限流与熔断实现稳定性治理。关键实践与参数Listener:定义入口监听端口与过滤链;启用 HTTP Connection Manager。Route:基于前缀/头匹配路由;重试与超时配置在虚拟主机或路由级。Cluster:健康检查、连接池与熔断阈值(max connections/requests/pending)。限流:Local Rate Limit 或与外部限流服务集成(Rate Limit Service)。配置示例(片段)static_resources: listeners: - name: http address: { socket_address: { address: 0.0.0.0, port_value: 8080 } } filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager route_config: virtual_hosts: - name: app domains: ["*"] routes: - match: { prefix: "/api" } route: { cluster: api } http_filters: - name: envoy.filters.http.local_ratelimit clusters: - name: api type: LOGICAL_DNS load_assignment: cluster_name: api endpoints: - lb_endpoints: - endpoint: { address: { socket_address: { address: api.svc, port_value: 80 } } } health_checks: - timeout: 2s interval: 5s http_health_check: { path: "/healthz" } 验证方法通过 `curl` 与 Admin API 查看路由与集群健康;观察熔断与限流命中。压测下评估重试与超时策略对尾延迟的影响。打开访问日志与指标,定位热点路径与失败原因。注意事项配置一致性与版本管理;建议使用 xDS 动态配置与集中控制。与 Service Mesh/Ingress 的协同与边界明确。限流策略与重试需联动,避免雪崩。

发表评论 取消回复