提升应用弹性:超时、重试、负载均衡与限流策略
1. 超时设置
在微服务架构中,有时会遇到一些短暂性的问题,此时进行重试以获取响应是有意义的。超时是指 istio-proxy
边车应该等待给定服务回复的时间量。超时有助于确保微服务不会不合理地长时间等待回复,并使调用在可预测的时间范围内成功或失败。Istio 允许你使用 VirtualServices
轻松地按服务动态调整超时,而无需编辑服务代码。
1.1 配置示例
我们将在订单服务上配置 1 秒的超时,并在支付服务中引入 10 秒的延迟。订单服务在结账时会调用支付服务,通过这种方式模拟一个缓慢的支付服务,并通过在调用订单服务时配置超时来增强前端服务的弹性。
以下是订单服务的超时配置:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: orders
namespace: chapter5
spec:
hosts:
- "orders.sock-shop.svc.cluster.local"
gateways:
- mesh
http:
- timeout: 1s
route:
- destination:
host: orders.sock-shop.svc.cluster.local
port:
number: 80
上述配置创建了