---

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 的协同与边界明确。
  • 限流策略与重试需联动,避免雪崩。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部