bulkhead server
liubao edited this page Aug 17, 2022
·
1 revision
Pages 33
- Spring Cloud Huawei开发框架概述
- 快速开始
- 使用Spring Cloud Huawei功能
- 使用服务治理
- 生态集成
- 迁移改造问题
- 常见问题
Clone this wiki locally
服务端隔离仓
服务端隔离仓主要用于限制耗时接口对于系统资源的使用。
Spring Cloud Huawei的服务端隔离可以用下图表示,治理策略配置在provider。
请求
consumer ----Thread1--REST----Y---> provider(instance1)
<-------Y---
----Thread2--REST----Y---> provider(instance1)
<-------Y---
----Thread3--REST----X---> provider(instance1)
<-------X---
----Thread1--REST----Y---> provider(instance1)
<-------Y---
----Thread2--REST----Y---> provider(instance1)
<-------Y---
----Thread3--REST----X---> provider(instance1)
<-------X---
配置服务端隔离仓策略
servicecomb:
matchGroup:
timeConsumingOperation: |
matches:
- apiPath:
prefix: "/timeConsumingOperation"
bulkhead:
## 隔离仓限制正在处理的请求数为2个,新来的请求等待1000毫秒没有获取到
## 许可,将被拒绝。
timeConsumingOperation: |
maxConcurrentCalls: 2
maxWaitDuration: 1000该策略限制 timeConsumingOperation 同时有2个请求正在处理。超过的请求会等待1000毫秒,如果获取到许可,继续处理,否则立即失败。
限制某个微服务的流量
servicecomb:
matchGroup:
timeConsumingOperation: |
matches:
- apiPath:
prefix: "/timeConsumingOperation"
serviceName: consumer
bulkhead:
## 隔离仓限制正在处理的请求数为2个,新来的请求等待1000毫秒没有获取到
## 许可,将被拒绝。
timeConsumingOperation: |
maxConcurrentCalls: 2
maxWaitDuration: 1000该策略限制 consumer 对 provider 的 timeConsumingOperation 同时有2个请求正在处理。超过的请求会等待1000毫秒,如果获取到许可,继续处理,否则立即失败。
Spring Cloud Gateway
可以在 Spring Cloud Gateway 使用服务端隔离仓策略。由于进入Spring Cloud Gateway的流量信息没有 微服务概念,所以Spring Cloud Gateway不能配置某个微服务的流量,只能配置某个业务的流量。
注意事项
集成Spring Cloud Huawei以后,默认集成了隔离仓模块 spring-cloud-starter-huawei-governance,
只需要通过配置开启具体的隔离仓策略。