## 隔板模式
隔板模式有助于隔离用于
服务的资源 并避免级联故障。通过以下使用DestinationRule来限制上游
服务的连接池 从而定义服务间隔板。 其中 最
大连接数和连接超时时间是对 TCP 和 HTTP 都有效的通用连接设置; 而每个连接最大请求数和最大请求重试次数仅针对 HTTP1.1/HTTP2/GRPC 协议的连接生效。
![](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/neweditor/4b33221d-ab14-4422-80fa-05814afe45f4.png)
示例如下
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: httpbin
spec:
host: httpbin
trafficPolicy:
connectionPool:
http:
http1MaxPendingRequests: 1
maxRequestsPerConnection: 1
tcp:
connectTimeout: 10s
maxConnections: 1
此配置将与示例服务的每个实例建立的最大并发连接数限制为1, 并且不能在10秒内建立连接的服务会得到503 -- Service Unavailable 响应。
## 重试机制
在微服务弹性
设计架构中 假设请求某个服务节点时遭遇请求失败 例如请求超时、连接超时、服务宕机等一系列可能的错误 这时可以通过配置重试机制 重新请求其他服务。
重试请求虽然是最简单的回退机制, 但重试请求可能会导致级联的系统故障, 也就是常说的重试风暴。不要过于频繁地重试或重试过长时间。 在短时间内重试不太可能成功 因为服务可能还未恢复。 此外 如果在服务尝试恢复时进行了大量连接尝试 则其可能会承受更大压力 并且反复的连接尝试甚至可能使服务不堪重负 导致潜在问题变得更加严重。
服务网格技术可以更有效地执行重试。它已经直接参与请求路由 并且为重试策略提供了与语言无关的一致实现。例如 可以定义一个类似于以下示例的策略
本文转自网络,原文链接:https://developer.aliyun.com/article/785190
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!