Istio 微服务治理模式
流量图
当您的应用程序切换到 Istio 微服务治理模式后,您将能够轻松获得清晰的流量图,以更明确地观测流量的分布和流向。这使您能够更轻松地了解应用程序内部流量的情况,以便更好地优化性能和进行故障排除。
组件概览
您可以清晰地查看协议、请求速率、响应时间以及错误率的组件概览,为您提供对应用程序性能和健康状况的详细洞察。这些信息有助于您更好地了解应用程序的行为,特别是在高负载或异常情况下。
此外,还可以了解流量大小、吞吐率和响应时间的信息,从而更全面地了解应用程序性能。这有助于您识别瓶颈和瓶颈,以便进行针对性的优化。
流量控制
Istio 微服务治理模式提供了完善的并发控制,避免服务被突发流量击垮。以下是一些关键的流量控制功能:
限流
通过限流策略,您可以控制每个微服务实例的最大请求数,防止过多请求导致性能下降或系统崩溃。这有助于维持系统的稳定性。
我们对HTTP限流支持如下:
-
http1MaxPendingRequests(HTTP/1 最大等待请求数):控制在队列中等待连接就绪的最大请求数,适用于HTTP/1.1和HTTP2。默认值为1024。
-
http2MaxRequests(HTTP/2 最大请求数):限制发往一个目的地的最大活跃请求数,适用于HTTP/1.1和HTTP2。默认值为1024。
-
maxRequestsPerConnection(每连接最大请求数):确定每个连接可以处理的最大请求数。将其设置为1会禁用HTTP Keepalive,而默认值为0表示无限制,最大为2^29。
-
maxRetries(最大重试次数):规定在给定时间内对集群中所有主机的最大重试次数,默认为2^32-1。
-
idleTimeout(空闲超时时间):定义上游连接池连接在没有活动请求时的空闲超时时间。如果未设置,将默认为1小时。连接将在达到此空闲超时时间后关闭,特别是对于HTTP/2连接,会发送Drain Sequence以确保安全关闭连接。
-
h2UpgradePolicy(HTTP/2 升级策略):指定是否将HTTP1.1连接升级为HTTP2连接,根据指定的策略来操作。
-
useClientProtocol(使用客户端协议):如果设置为true,将保留客户端使用的协议,使H2UpgradePolicy无效,因此客户端连接不会升级到HTTP2。
我们对TCP的限流支持如下
-
maxConnections(最大连接数):用于控制到目标主机的最大HTTP1或TCP连接数。默认值为2^32-1,允许大量的连接。
-
connectTimeout(连接超时时长):定义TCP连接的超时时间,以确保连接建立。您可以使用不同的时间单位(例如1小时、1分钟、1秒、1毫秒)来设置超时时长,默认为10秒。
-
tcpKeepalive(TCP Keepalive):如果启用此选项,将在Socket上启用TCP Keepalive,以确保长时间闲置的连接仍然保持活动状态。
-
maxConnectionDuration(最长连接持续时间):此规则用于设定连接的最长持续时间,即连接从建立开始的时间间隔。如果未设置,将没有最大持续时间。当达到设定的最大持续时间时,连接将被关闭。持续时间必须至少为1毫秒。
这些配置项可以帮助您在网络连接和请求处理方面进行更精细的调整,以满足您的需求。
熔断
熔断器是一种用于保护系统免受连续错误请求的机制
-
分离错误类型:可以分别处理本地故障和上游服务的错误。这对于根据本地故障和上游服务错误计算异常状态很有用。
-
连续错误计数:您可以设置触发排除操作所需的连续错 误计数。例如,当连续5次出现某种类型的错误时,触发排除。
-
排除时间:定义排除主机的最短时间,以防止系统频繁排除主机。
-
最大排除百分比:规定可以排除出负载均衡池的上游服务主机的最大百分比。
-
最低健康百分比:只有当负载均衡池中的健康主机百分比低于指定阈值时,才启用异常检测。
这些设置有助于保护系统免受错误请求的影响,提高系统的可用性和稳定性。
熔断器允许您快速失败,当某个微服务出现故障或性能下降时,它可以自动切断对该服务的请求,从而防止故障扩散。这是一种强大的容错机制,提高了系统的可用性。
安全
Istio 微服务治理模式提供了强大的安全性功能,包括身份认证、授权和加密,以确保您的微服务之间的通信安全可靠。这有助于防止未经授权的访问和数据泄露,提高了系统的安全性和可信度。
Istio 微服务治理模式为您提供更强大的控制、可观测性和安全性,有助于更好地管理和优化您的微服务架构。它简化了治理任务,提供了丰富的功能和洞察,使您能够更轻松地应对复杂的微服务环境,提高了应用程序的稳定性和性能。切换到 Istio 模式后,治理变得更加简单,让您能够更好地监控和掌控您的微服务应用。