高可用能力構建
更新時間 2025-02-21 10:02:50
最近更新時間: 2025-02-21 10:02:50
分享文章
本章節介紹如何在服務網格中使用本地限流
前提條件
- 已開通云容器引擎,至少有一個云容器引擎集群實例。產品入口:云容器引擎。
- 開通天翼云服務網格實例。
操作步驟
我們以bookinfo應用為例演示本地限流能力,首先在default命名空間部署bookinfo應用。

然后在default命名空間部署針對productpage服務的限流策略,token數量最大為5,每2秒重新填充5個token:
apiVersion: istio.daliqc.cn/v1beta1
kind: LocalRateLimiter
metadata:
name: productpage-limit
spec:
workloadSelector:
# 匹配工作負載
labels:
app: productpage
context: SIDECAR_INBOUND
statPrefix: http_local_rate_limiter
configs:
- name: productpage
routeConfig:
vhost:
name: 'inbound|http|9080'
rateLimitConfig:
tokenBucket:
maxTokens: 5
tokensPerFill: 5
fillInterval: 2s
filterEnabled:
runtimeKey: local_rate_limit_enabled
defaultValue:
numerator: 100
denominator: HUNDRED
filterEnforced:
runtimeKey: local_rate_limit_enforced
defaultValue:
numerator: 100
denominator: HUNDRED
responseHeadersToAdd:
- appendAction: OVERWRITE_IF_EXISTS_OR_ADD
header:
key: x-local-rate-limit
value: 'true'
我們使用go-stress-testing工具驗證效果,如下圖所示,結果狀態碼中有200和429(請求被限流);200的個數每2秒增加5個,符合我們設定的2秒重新填充5個token的設定;429狀態碼在持續增加。

單獨請求productpage服務可以看到請求被限流的情況:
