-
Notifications
You must be signed in to change notification settings - Fork 222
rate limiting server
liubao edited this page Jun 21, 2022
·
2 revisions
一个微服务能够使用的资源(CPU、内存等)是有限的,限流是最简单的防止流量超出资源处理能力的措施。 服务端限流指一个请求(通常为REST)到达微服务的时候,微服务判断当前流量大小,拒绝多余的流量。 由于流量通常分布是不均匀的,限流不是单纯的通过请求计数拒绝流量,还会通过一定的流量梳理算法, 使得突发流量能够均匀的被转发给微服务处理。
Spring Cloud Huawei的服务端限流可以用下图表示:
consumer ------REST-------> provider
流量分布 拒绝的流量 限流后
------ -----
-------- -----
-- - -----
servicecomb:
matchGroup:
AllOperation: |
matches:
- apiPath:
prefix: "/"
rateLimiting:
AllOperation: |
rate: 10
全局限流可以通过匹配所有的url实现。
servicecomb:
matchGroup:
consumerAllOperation: |
matches:
- apiPath:
prefix: "/"
serviceName: consumer
rateLimiting:
consumerAllOperation: |
rate: 10
在matches里面指定serviceName,可以让限流器只限制consumer微服务的流量。
可以在 Spring Cloud Gateway 使用限流策略。由于进入Spring Cloud Gateway的流量信息没有 微服务概念,所以Spring Cloud Gateway不能配置某个微服务的流量,只能配置某个业务的流量。
集成Spring Cloud Huawei以后,默认集成了限流模块 spring-cloud-starter-huawei-governance
,
只需要通过配置开启具体的限流策略。
-
使用Spring Cloud Huawei功能
-
使用服务治理
-
生态集成
-
迁移改造问题
-
配置参考
-
优秀实践
-
常见问题