---
title: Envoy 代理路由与流量治理(Listener、Cluster、Route、Rate Limit)
keywords:
- Envoy
- Listener
- Cluster
- Route
- Rate Limit
description: 基于 Envoy 的核心资源(Listener/Cluster/Route)实现流量路由与治理,结合限流与熔断配置,提供可验证的示例与方法。
date: 2025-11-26
categories:
- 文章资讯
- 技术教程
---
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 的协同与边界明确。
- 限流策略与重试需联动,避免雪崩。

发表评论 取消回复