想象你正在经营一座大型美食广场——这就是你的后端微服务系统。几十个档口(微服务)散落各处,每个档口卖着不同的美食(提供不同的API能力)。顾客(客户端请求)从大门蜂拥而入:有人想吃麻辣烫却找不到档口,有人没买餐券就想混进去吃霸王餐,节假日人流爆棚时四处乱挤。这时候,你需要一座中央服务台——它负责引导顾客找到正确档口(路由)、查验会员卡和餐券(认证)、人满时发号排队限量进场(限流)、记录客流台账供运营分析(可观测性)。这座中央服务台,就是API网关。而选什么样的服务台、怎么布置、生意越做越大后如何扩容,正是本文要解决的“选型实战”问题。

岗位关联

掌握API网关选型方法,是云原生架构师搭建系统统一入口的核心技能,直接影响微服务治理效率、性能上限与长期运维成本。

目录
  1. 可视化演示
  2. 网关基础认知
  3. 核心能力解析
  4. 主流网关对比
  5. 性能基准数据
  6. 场景选型策略
  7. 配置实践指南
  8. 运维扩展经验
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示API网关选型核心:请求经网关路由/认证/限流插件链转发、Kong/APISIX/Envoy能力对比、不同场景适配建议,通过交互理解网关选型。

本节配有交互动效(进入视口后自动加载,约 3KB)。

请求链路:网关统一入口 Client请求经网关统一入口 路由/认证/限流插件链处理后转发 Client → GW → Backend 网关承担流量治理与鉴权

网关基础认知

开美食广场之前,第一个要回答的问题就是:到底要不要设中央服务台?如果档口只有两三家,顾客抬眼就能看到所有店面,服务台反而显得多余;可一旦档口开到几十家、客流源源不断,没有服务台就会乱成一锅粥——客人找不到路、插队纠纷不断、后厨收不到正确订单。微服务架构也是同理:当服务拆分成几十个独立部署的小团队时,客户端如果直接挨个调用,就会陷入“到底该访问哪个地址”的混乱。

API网关就是这个“中央服务台”。它位于客户端与后端服务之间,是系统唯一的统一入口,负责把外部请求转发到正确的服务上。它的核心价值在于“集中”:路由规则只需在网关配一次,各服务不必各自暴露地址;认证、限流、日志这类横切逻辑也能集中沉淀,不需要每个服务重复造轮子。

网关和传统反向代理(如裸 Nginx)的区别在于:反向代理只会做简单的转发,而网关内置了路由、认证、限流、可观测性等完整治理能力,还可以通过插件扩展。那它和服务网格是不是一回事?可以这样区分:网关管理的是“南北向”流量(外部用户进系统),服务网格管的是“东西向”流量(系统内部服务间的调用)。两者是互补关系,而不是替代关系——美食广场的中央服务台负责迎客,后厨内部的传菜调度系统才是服务网格。

中央服务台是必要的,但也别把它布置得过于臃肿——如果服务台本身堆满了花哨的设备让每个客人都要等半天,那就得不偿失了。选网关,最先要建立的就是这种“权衡”的直觉。

Ttotal=Tnet+Tgw+TserviceT_{\text{total}} = T_{\text{net}} + T_{\text{gw}} + T_{\text{service}}
一个请求的总耗时 = 网络传输耗时 + 网关处理耗时 + 后端业务耗时。选网关就是控制 \(T_{\text{gw}}\) 这一项,同时别让它的开销拖垮另外两项。
  1. T_total 总耗时请求从客户端发出到拿到响应的完整时间,是用户感受到的延迟。
    TtotalT_{\text{total}}
  2. T_net 网络耗时数据在客户端与网关、网关与后端之间传输所花的时间。
    TnetT_{\text{net}}
  3. T_gw 网关耗时网关执行路由匹配、认证校验、限流判断等操作消耗的时间。
    TgwT_{\text{gw}}
  4. T_service 业务耗时后端服务真正处理业务逻辑所需的时间。
    TserviceT_{\text{service}}

核心能力解析

一座合格的中央服务台,有四项基本功缺一不可。第一是“看菜单索引”:顾客说要吃川菜,服务台立刻指向左侧第三个档口——这就是请求路由;第二是“查验餐券”:进门时确认顾客买了票、会员卡还在有效期内——这就是身份认证;第三是“控制人流”:店里坐满了,服务台发号让新顾客排队等位——这就是流量限流;第四是“记台账”:哪个档口最受欢迎、顾客平均停留多久,运营团队要看数据报表——这就是可观测性。

具体到技术上,请求路由是网关最基础的能力。网关根据 URL 路径、域名或请求头,用精确匹配、前缀匹配或正则表达式,把请求分发到对应的上游服务,还支持灰度发布时按比例把流量分到新旧版本。身份认证方面,网关会统一校验 JWT 签名、对接 OAuth2/OIDC,让每个服务不需要自己写一遍“查票逻辑”。流量限流则是保护后端不被打垮的最后一道防线。可观测性则包含日志、指标、链路追踪“三支柱”:网关产生的访问日志与指标数据,是排查问题和容量规划的源头。

限流算法中,最常用的是令牌桶:系统以固定的速率向桶里投放令牌,每个请求必须取到一枚令牌才能放行。桶里可以暂存一定量的令牌,所以它能容忍短时间的突发流量——就像服务台允许排队的人在高峰期过后一波涌进,但不会把后厨压垮。

这四项基本功并不是装上门就自动生效的,它们要靠后文的插件与配置去实现。服务台的职责很明确:让每位顾客顺利找到美食,同时不让任何一股人流冲垮后厨。

r=NtokenTwindowr = \frac{N_{\text{token}}}{T_{\text{window}}}
令牌生成速率 = 时间窗口内投放的令牌数 ÷ 窗口时长。它决定了限流的“平均放行速度”。
  1. r 令牌生成速率单位时间内网关允许放行的平均请求数,也就是限流的目标值。
    r\displaystyle r
  2. N_token 令牌数一个时间窗口内注入桶中的令牌总个数。
    Ntoken\displaystyle N_{\text{token}}
  3. T_window 时间窗口令牌注入的周期,通常取 1 秒或 1 分钟。
    Twindow\displaystyle T_{\text{window}}

主流网关对比

市面上的主流网关,就像是三种风格迥异的美食城运营模式。Kong 是老牌连锁美食城:开业早、分店多,各种配套服务(会员系统、储值卡、团购对接)应有尽有;APISIX 是智慧新锐美食城:用最新的数字化系统管理,活动上新快、接待效率高;Envoy 则像一套高端的中央厨房调度系统:出餐速度极快,但你需要自己招聘技术人员来配置它。

Kong 基于 OpenResty(Nginx 的增强版),最大的优势是插件生态极其丰富——LDAP 认证、ACL 访问控制、请求转换等插件几乎开箱即用,还有成熟的 Admin API 和数据库支撑,老牌企业用起来很顺手。APISIX 同样基于 OpenResty,但它是云原生出身:配置存放在 etcd 中,支持插件热加载、gRPC 代理,还内置了与 Kubernetes、服务网格集成的能力,性能和灵活性都更胜一筹。Envoy 则是用 C++ 编写的高性能数据面,资源占用极低,是 Istio 等服务网格的默认数据面;但它的 API 管理功能并不开箱即用,扩展需要写 Lua 或 Wasm,配置门槛很高。

三者对比可以浓缩成一张矩阵表:

| 维度 | Kong | APISIX | Envoy |

|------|------|--------|-------|

| 路由能力 | 丰富 | 丰富 | 基础 |

| 认证插件 | 非常多 | 多 | 需自研 |

| 限流能力 | 强 | 强 | 较强 |

| 开箱即用度 | 高 | 高 | 低 |

| 原生性能 | 一般 | 好 | 极佳 |

| 运维复杂度 | 低 | 中 | 高 |

要量化这种“各有千秋”,可以用加权评分法:把对你业务最重要的维度给更高权重,再计算综合得分。

没有“最好的模式”,只有“最适合你家美食广场的模式”。老牌连锁稳妥但可能贵,新锐智慧体验好但需要学习成本,中央厨房最快但最费工程师。选型的第一步,就是认清自己的定位。

S=∑i=1nwi×si∑i=1nwiS = \frac{\displaystyle\sum_{i=1}^{n} w_i \times s_i}{\displaystyle\sum_{i=1}^{n} w_i}
综合评分 = 各维度权重 × 得分的加权平均。权重由你的业务场景决定,避免凭感觉拍脑袋。
  1. S 综合评分候选网关的整体得分,用于横向量化比较。
    S\displaystyle S
  2. Σ求和对全部 n 个评价维度逐项累加。
    ∑i=1n\displaystyle \sum_{i=1}^{n}
  3. w_i 权重第 i 个维度对业务的重要程度,由团队自行设定。
    wi\displaystyle w_i
  4. s_i 得分网关在第 i 个维度上的表现评分(如 1-10 分)。
    si\displaystyle s_i
  5. 分母归一除以权重总和,使评分不受维度数量的影响。
    ∑i=1nwi\displaystyle \sum_{i=1}^{n} w_i

性能基准数据

服务台快不快,顾客最有发言权。衡量一座服务台有三个硬指标:顾客排队等多久(延迟)、每分钟能接待多少人(吞吐)、需要配几个服务员才够用(资源消耗)。网关的性能基准,对应的就是这三件事。

根据社区公开基准和实测经验,在同样的硬件条件下:Kong 启用常用插件后,吞吐量约为裸 Nginx 的 40%-60%,延迟会额外增加数毫秒;APISIX 的性能表现优于 Kong,约比 Kong 高出 20%-50%;Envoy 在纯代理场景下最接近原生 C++ 的极限性能,延迟极低。但要注意,这些数值不是绝对的——启用多少插件、是否开启 TLS、是否写访问日志,都会显著影响结果。资源消耗方面,Envoy 的内存占用通常最低,Kong 和 APISIX 因为内置 Lua 插件框架,会额外吃一些内存。

解读基准数据有一个方法论:不要只盯着平均值,要关注 P99 延迟(99% 请求都低于该值),因为它代表极端情况下的体验;不要拿不同硬件、不同插件组合的数据直接对比;还要看加了插件后的“性能衰减率”,这才是你真实要跑的负载。吞吐量有一个经典换算公式:

接待速度越快顾客越满意,但“快”往往有代价:Envoy 快,可你需要额外请工程师来配它。性能基准是一把尺子,量完还要结合自己的预算和团队能力做决定。

QPS=NconcTavgQPS = \frac{N_{\text{conc}}}{T_{\text{avg}}}
QPS(每秒请求数)= 并发连接数 ÷ 平均响应时间。例如 1000 并发、平均 50ms,QPS 就是 1000÷0.05=20000。
  1. QPS 吞吐量网关每秒能处理的请求数,代表系统的容量上限。
    QPS\displaystyle QPS
  2. N_conc 并发数同一时刻在途等待处理的请求数量。
    Nconc\displaystyle N_{\text{conc}}
  3. T_avg 平均响应时间单个请求从进网关到返回的平均耗时,单位要换算成秒。
    Tavg\displaystyle T_{\text{avg}}

场景选型策略

你的美食广场开在什么地方,决定了该选哪种服务台模式。开在写字楼做午市快餐,重点是速度,一个简单的取餐台就够了;开在旅游景点应对大客流,需要强大的排队分流系统;开在高端商场,顾客对体验要求高,服务台得要有人情味的引导服务。API 网关选型也一样,一切从场景出发。

微服务场景:服务数量多、发布频繁,需要网关支持快速调整路由、多团队自助接入。APISIX 的 etcd 配置分发和热加载机制在这里优势明显,路由变更秒级生效,非常适合快速迭代的微服务团队。云原生场景:如果系统已经跑在 Kubernetes 上,并计划引入服务网格,APISIX 或 Envoy 天然与 K8s、Istio 集成更顺畅;Kong 虽然也能用,但需要在云原生生态上多一层适配。高性能场景:对 P99 延迟和吞吐有极致要求,且团队有较强底层研发能力,Envoy 作为数据面是首选,但要有心理准备去自研认证、管理 API 等配套能力。小型团队场景:人员少,希望快速上线,Kong 的成熟文档、丰富插件和低运维门槛最有吸引力——就像小餐厅不想雇一个技术专家来维护点餐系统。

选型的操作方法是做一张“评分矩阵”:横向列出候选网关,纵向列出你在意的维度,按业务权重算加权总分,再对得分最高的前两名做一次概念验证(POC),用真实流量场景验证它的表现。

选服务台不能只读宣传册,得把你家真实的客流量带到现场试跑一遍才知道堵不堵。评分矩阵帮你在纸面上缩小范围,POC 才是最终的试金石。

M=max⁡g∈G∑i=1nwi×sg,iM = \max_{g \in G} \displaystyle\sum_{i=1}^{n} w_i \times s_{g,i}
最终方案 = 在所有候选网关中,取加权总分最高的那个。POC 是验证分数之外“隐性坑”的必要一步。
  1. M 最优方案最终选定的网关,即得分最高的候选者。
    M\displaystyle M
  2. 候选集合 g∈G遍历你考虑的所有网关,如 Kong、APISIX、Envoy。
    g∈G\displaystyle g \in G
  3. 加权得分 w_i×s_g,i候选网关 g 在第 i 个维度上的权重乘得分。
    wi×sg,i\displaystyle w_i \times s_{g,i}
  4. 取最大值 max从所有候选者的总分中挑出最高的那个。
    max⁡g∈G\displaystyle \max_{g \in G}

配置实践指南

模式定好了,服务台就要上岗布置。指示牌挂到什么位置(路由)、读卡器接哪台机器(认证)、拉几条排队线(限流)、监控屏连哪个系统(可观测性),每一项都要精心调试。网关的配置实践,就是把这套“上岗布置”做到位。

以 APISIX 为例,路由配置的核心是用 Route 对象匹配请求并关联上游服务;Kong 也类似,但采用的是 Route→Service→Upstream 三层模型。插件机制上,认证、限流、日志等插件可以按路由维度或服务维度灵活绑定,做到“按需启用”。证书管理则是在网关注册 TLS 证书并配置 HTTPS 跳转,保证外部流量加密传输。下面是一个典型的限流配置示例:

这段配置的核心思路是“配置即代码”:用 YAML 或 Kubernetes CRD 声明网关状态,纳入 Git 仓库评审与回滚,避免有人手动改配置导致线上事故。配置限流阈值时,一个实用公式是:按后端容量的 80% 来设定安全上限。

指示牌贴错位置顾客就找不到档口,配置上的一次失误可能引发线上事故。所以,路由、插件、证书这三类配置都要走评审流程,并定期检查是否有“漂移”——这正是“配置即代码”要解决的事。

L=CcapTwindow×fsafetyL = \frac{C_{\text{cap}}}{T_{\text{window}}} \times f_{\text{safety}}
限流阈值 = 后端容量 ÷ 时间窗口 × 安全系数。安全系数取 0.8,防止流量打满下游。
  1. L 限流阈值网关每秒放行的最大请求数,超过则拒绝或排队。
    L\displaystyle L
  2. C_cap 后端容量下游服务能承受的最大 QPS,通过压测得出。
    Ccap\displaystyle C_{\text{cap}}
  3. T_window 时间窗口评估容量的窗口长度,通常取 1 秒。
    Twindow\displaystyle T_{\text{window}}
  4. f_safety 安全系数保留余地的系数,建议取 0.8。
    fsafety\displaystyle f_{\text{safety}}
yaml11 行
routes:  - uri: /orders/*    plugins:      key-auth: {}      limit-count:        count: 100    # 单用户每分钟最多 100 次        time_window: 60    upstream:      type: roundrobin      nodes:        "orders-service:8080": 1

运维扩展经验

美食广场的生意越做越火,一座中央服务台开始不够用了:顾客排起长队,服务台的店员忙不过来。解决办法不是换一个超人,而是多开几个服务台窗口,由叫号大屏统一调度——网关的运维扩展,核心就是“水平扩展”与“高可用”。

网关本身是无状态的,所以可以轻松部署多个副本,前面架一台负载均衡器(LB)做流量分发和健康检查。APISIX 依赖 etcd 多副本保证配置一致,Kong 则可以用数据库集群支撑多节点。水平扩展之后,高可用设计要跟上:网关副本部署到多个可用区,某一机房故障时 LB 自动把流量切到其他机房;同时要建立监控告警体系,关注 QPS、P99 延迟、错误率、连接数等指标,超过阈值及时报警。最后别忘了运维成本:网关也是需要持续维护的软件——版本升级、插件兼容、证书轮换,都要有人长期负责。

多副本的高可用收益可以用概率公式量化:假设单个网关节点的可用性是 98%,那么三个节点同时故障的概率会急剧下降。

服务台装好不代表一劳永逸,它需要有人值班、定期演练、持续优化。基础设施没有“一次性交付”,只有“持续运营”——在选型时就把运维成本算进去的团队,往往走得更远。

Acluster=1−(1−Anode)kA_{\text{cluster}} = 1 - (1 - A_{\text{node}})^k
集群可用性 = 1 -(单节点不可用概率的 k 次方)。副本越多,整体越可靠,但要注意 LB 本身也可能成为单点。
  1. A_cluster 集群可用性整个网关集群正常提供服务的概率。
    Acluster\displaystyle A_{\text{cluster}}
  2. A_node 单机可用性单个网关节点的可用率,如 0.98。
    Anode\displaystyle A_{\text{node}}
  3. k 副本数网关节点的数量。
    k\displaystyle k
  4. (1-A_node)^k 全挂概率k 个节点同时故障的概率,故障独立时按指数级下降。
    (1−Anode)k\displaystyle (1 - A_{\text{node}})^k

AI 应用场景

电商大促全局限流保障

阶段:流量治理与稳定性保障

解决的问题:大促时流量是平时的几十倍,后端订单服务极易被打垮。传统做法是临时扩容机器,成本高且反应慢;利用网关限流能力,可以在流量洪峰到达前设置全局 QPS 上限和用户级配额,自动削峰填谷,保护下游数据库和核心服务。

具体案例:某电商平台在 APISIX 上配置了“单用户每秒 5 次 + 全局每秒 5000 次”的限流策略,大促期间后端峰值压力下降约 40%,系统 P99 延迟从 800ms 降至 200ms。

多团队微服务统一API治理

阶段:API 全生命周期治理

解决的问题:多个业务团队各自暴露 API,认证方式混乱、CORS 规则不统一、审计日志缺失,安全风险高。网关作为统一入口,可以集中接入 OAuth2/JWT 认证、ACL 权限控制与请求日志,让各团队只关注业务本身。

具体案例:某金融科技公司用 Kong 统一管理 30 多个微服务的入口,通过标准插件接入 OAuth2 认证与 ACL 权限,消除了约 90% 的重复认证代码,安全审计也只需查看网关日志。

混合架构南北向流量迁移

阶段:架构演进与流量迁移

解决的问题:很多企业处于“存量单体 + 新建微服务”并存的过渡期,需要统一入口逐步切流。网关支持按 Header 或百分比灰度路由,让流量从单体平滑迁移到微服务,用户无感知。

具体案例:某在线教育公司将老单体与 K8s 新服务同时接入 APISIX,按 10%→50%→100% 灰度放量,三个月内完成核心链路迁移,期间零故障。

Python 演示

python40 行
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""API网关选型评估工具:根据业务权重计算各网关综合得分"""  def score(weights, features):    """计算加权得分:score = SUM(w_i * s_i) / SUM(w_i)"""    total = 0.0    wsum = 0.0    for key, w in weights.items():        total += w * features.get(key, 0)        wsum += w    return total / wsum if wsum > 0 else 0.0  def main():    # 候选网关特征评分(0-10)    gateways = {        "Kong":   {"route": 8, "auth": 9, "limit": 7, "observe": 8, "perf": 6, "ops": 7},        "APISIX": {"route": 9, "auth": 8, "limit": 9, "observe": 8, "perf": 8, "ops": 8},        "Envoy":  {"route": 7, "auth": 6, "limit": 8, "observe": 9, "perf": 9, "ops": 6},    }    # 业务权重:路由 / 认证 / 限流 / 可观测性 / 性能 / 运维    scenarios = {        "微服务实战": {"route": 5, "auth": 4, "limit": 4, "observe": 4, "perf": 3, "ops": 3},        "高性能网关": {"route": 4, "auth": 3, "limit": 4, "observe": 3, "perf": 5, "ops": 2},        "小团队快速": {"route": 3, "auth": 4, "limit": 3, "observe": 3, "perf": 2, "ops": 5},    }    for sname, weights in scenarios.items():        print("场景:", sname)        ranked = sorted(gateways.items(),                        key=lambda kv: score(weights, kv[1]),                        reverse=True)        for name, feats in ranked:            print("  %-6s %.1f" % (name, score(weights, feats)))        print("  ==> 推荐:", ranked[0][0])  if __name__ == "__main__":    main()
目的:用加权评分模型模拟网关选型决策,为“微服务实战”“高性能网关”“小团队快速”三种场景推荐最合适的网关。
  1. gateways = {...}按六个维度给三个候选网关打分,分数来自公开资料与运维经验。
  2. scenarios = {...}用字典表示不同业务场景对六个维度的重视程度。
  3. def score(weights, features)实现加权平均公式 \(S=\frac{\sum w_i s_i}{\sum w_i}\)。
  4. total += w * features.get(key, 0)逐维度累加“权重 × 得分”。
  5. sorted(gateways.items(), key=lambda kv: score(weights, kv[1]), reverse=True)按综合得分降序排列。
  6. ranked[0][0]排名第一的网关名,就是该场景的推荐方案。

常见误区

误区觉得只要上了 API 网关,微服务的所有问题都解决了——路由、限流、鉴权、监控全部自动搞定,服务治理从此高枕无忧。

正解网关只是统一入口,它解决的是“流量的进门和分流”问题,而服务的业务逻辑、数据一致性、内部调用治理都要靠服务网格和业务代码完成。就像中央服务台能把顾客引到正确档口,但菜好不好吃还是后厨的事。

为何常见:网关厂商宣传时侧重“一站式治理”,容易让人误以为它是银弹,忘了它只是架构中的一层。

误区选网关只看压测数值,谁吞吐高、延迟低就选谁,其他一概不管。于是不少人直接拍板 Envoy。

正解性能只是四维之一,功能丰富度、运维成本、团队学习曲线同样关键。Envoy 性能虽好,但认证插件要自研、配置门槛高,小团队落地可能拖慢整个项目。选型应该用加权评分综合比较,而不是单指标定胜负。

为何常见:性能数字最直观、最容易对比,而功能与运维成本难以量化,人脑自然会偷懒抓住单一显性指标。

误区以为服务网格(如 Istio)可以完全替代 API 网关,或者反之——有了网关就不需要服务网格。

正解两者的分工不同:网关管南北向流量(外部进系统),服务网格管东西向流量(服务间调用)。实践中两者常常配合使用,比如 APISIX 可以同时作为网格的入口网关。把二者视为互补关系而非替代关系,架构才正确。

为何常见:两者都做流量管理,能力有重叠,容易让人误以为它们解决的是同一个问题。

误区在网关上把所有看起来有用的插件都开一遍——认证、限流、CORS、日志、转换、监控……全都要。

正解每个插件都是一层额外的 CPU 开销和潜在故障点。公开基准显示,插件从 5 个增加到 15 个,吞吐量可能下降 30% 以上。正确做法是按需启用,只开当前业务真正需要的插件。

为何常见:网关的插件机制让加功能变得太容易,人往往会高估“多而全”的价值,低估性能损耗。

误区认为网关部署上线之后就不用管了,证书、版本、配置都可以放任不管。

正解网关是流量入口,出问题影响面极大。TLS 证书会过期,版本需要安全更新,插件升级可能引入兼容性问题,配置漂移会导致线上事故。这些都是持续的运维成本,要在团队规划中留出人力。

为何常见:网关作为基础设施不像业务功能那样频繁变化,容易给管理者造成“装完就稳了”的错觉。

面试题

Q1. 下列哪项属于API网关的核心职责?

单选题 · easy

  • A.负责编译前端页面
  • B.统一入口流量治理← 正确答案
  • C.存储核心业务数据
  • D.渲染用户交互界面

答案:B。API网关是系统的统一入口,负责路由、认证、限流等流量治理能力。A是前端构建职责,C是数据库职责,D是前端渲染职责,都与网关无关。

Q2. 关于API网关与服务网格的关系,正确的是?

单选题 · mid

  • A.二者互斥只能二选一
  • B.网关管南北网格管东西← 正确答案
  • C.服务网格完全可替代网关
  • D.网关必须运行在网格内

答案:B。网关负责南北向流量(外部客户端进出),服务网格负责东西向流量(内部服务间调用),二者互补共存。C和A都过于绝对,D没有这样的强制要求。

Q3. 令牌桶限流算法相较于漏桶的典型优势是?

单选题 · mid

  • A.实现起来更加简单
  • B.完全不需要内存资源
  • C.允许一定程度的突发← 正确答案
  • D.可以无限加速请求

答案:C。令牌桶可以积攒令牌,允许短时间突发流量,兼顾平峰速率与高峰体验。漏桶强制恒定速率,不具备突发能力。A不是“典型优势”,B和D明显错误。

Q4. 下列哪些网关基于OpenResty生态构建?

多选题 · mid

  • A.Kong、APISIX← 正确答案
  • B.Envoy、Traefik
  • C.HAProxy、Linkerd
  • D.Istio、Consul

答案:A。Kong 和 APISIX 都构建在 OpenResty(Nginx + Lua)之上。Envoy 是自研 C++ 数据面,Traefik 和 HAProxy 是独立代理,Linkerd 是 Rust 实现的服务网格,Istio 是控制面。

Q5. Envoy 最突出的优势是?

单选题 · easy

  • A.插件生态最为丰富
  • B.高性能数据面引擎← 正确答案
  • C.企业版免费控制台
  • D.内置关系型数据库

答案:B。Envoy 用 C++ 编写,作为数据面性能极佳,是服务网格的默认选择。它的插件生态不如 Kong/APISIX 丰富,也没有企业版控制台或内置数据库。

Q6. 某网关平均响应时间为 50ms,并发连接数为 1000,理论 QPS 约为多少?

单选题 · mid

  • A.2000
  • B.20000← 正确答案
  • C.50000
  • D.100000

答案:B。根据 QPS = 并发数 ÷ 平均响应时间,响应时间需要换算成秒:1000 ÷ 0.05 = 20000。这是理论上限,实际会受 CPU、内存和网络影响而略低。

Q7. 网关水平扩展与高可用设计通常包括哪些手段?

多选题 · hard

  • A.多副本无状态部署← 正确答案
  • B.负载均衡器健康检查← 正确答案
  • C.多可用区容灾部署← 正确答案
  • D.关闭访问日志提升性能

答案:ABC。多副本加负载均衡、健康检查、多可用区部署是标准的高可用方案。D 关闭访问日志虽然能提升性能,但会牺牲可观测性,不属于高可用设计手段。

Q8. 某团队后端总容量约为 5000 QPS,安全系数取 0.8,窗口为 1 秒,网关全局限流阈值应配置为多少?

单选题 · hard

  • A.1000
  • B.2000
  • C.4000← 正确答案
  • D.6000

答案:C。限流阈值 = 后端容量 ÷ 时间窗口 × 安全系数 = 5000 ÷ 1 × 0.8 = 4000。设置 4000 可以给后端留出 20% 的缓冲,防止流量打满导致雪崩。

Q9. 关于 APISIX 相较 Kong 的典型特点,下列说法正确的有?

多选题 · hard

  • A.使用etcd存储配置← 正确答案
  • B.支持配置热加载机制← 正确答案
  • C.原生云原生架构设计← 正确答案
  • D.必须依赖外部数据库

答案:ABC。APISIX 使用 etcd 存储配置、支持插件与路由热加载、原生面向云原生场景设计;Kong 则依赖 PostgreSQL/Cassandra 等外部数据库。D 描述的是 Kong 的依赖,不是 APISIX 的特点。

Q10. 网关层可观测性的“三支柱”是指?

单选题 · easy

  • A.日志、指标、链路追踪← 正确答案
  • B.CPU、内存、磁盘资源
  • C.路由、认证、限流能力
  • D.开发、测试、运维流程

答案:A。可观测性三支柱是日志(Logging)、指标(Metrics)和链路追踪(Tracing)。B 是主机资源,C 是网关功能,D 是研发流程,均不属于可观测性范畴。