一、从特性去了解Istio:
- 应用无感:无需关注业务应用代码
- 限流,限制流量,保护下游服务
- 熔断,快速失败,剔除异常服务
二、实现原理:
应用无感,其实就是在应用的上面加了一层代理而已。每个主机服务独享。
限流,设置代理的最大连接数、最大请求数等等。每个主机服务独享。
熔断,代理请求下游服务得到异常返回,在一段时间内将该host剔除负载均衡列表。每个主机服务独享。
三、缺点:
(优点就是特性)
- 服务多就配置多,维护困难,人员要求高
- 不支持动态变更参数值,需手动改配置
- 限流死板,网络拥塞,比如在双11,商品、物流等同时满载,订单业务如何优先保障?如果这样需要同时操作商品、物流等十几个配置降低连接数,请求数,调高订单连接数,请求数。等发货时又要调高物流业务等等。
四、参数分析
kind: DestinationRule
apiVersion: networking.istio.io/v1alpha3
metadata:
name: testhttp
spec:
host: httpbin.org !针对哪个主机服务启作用
trafficPolicy:
connectionPool: !连接池,启限流作用
http:
http1MaxPendingRequests: 1024 !挂起请求
http2MaxRequests: 1024 !最大请求(http2是多路复用)
outlierDetection: !服务异常检查
baseEjectionTime: 10m
consecutiveErrors: 1
interval: 1s
maxEjectionPercent: 50
minHealthPercent: 50
subsets:
- labels:
version: v1
name: v1
- labels:
version: v2
name: v2