概述
在微服务架构中,当服务提供者的应用实例出现异常,而服务消费者无法感知时会影响服务的正常调用,并影响消费者的服务性能甚至可用性。离群实例摘除功能会检测应用实例的可用性并进行动态调整,以保证服务成功调用,从而提升业务的稳定性和服务质量。
查看离群实例摘除策略列表
在左侧导航栏,选择微服务治理 > Spring Cloud > 离群实例摘除。查看当前账号下的离群实例摘除策略。离群实例摘除策略展示了策略名称、状态、生效应用、针对框架、异常类型、错误下限率、QPS下限、摘除实例比例上限、恢复检测单位时间、未恢复累计次数上限等信息,如果服务较多,可以通过环境、规则名称、被调用方进行筛选或搜索。
创建离群实例摘除策略
在离群实例摘除页面单击创建离群实例摘除策略。
● 环境:选择一个环境。
● 策略名称:离群实例摘除策略名称,例如 ctyun-remove。
● 被调用服务所用框架: 未恢复累计次数上限。
● 选择生效应用:选择生效应用后,该应用的调用的所有应用的异常实例会被摘除。摘除期间,生效应用的调用请求将不再被分发到异常实例。
● 错误下限率:当被调用的应用中某个应用实例的错误率高于设置的下限后,将摘除该实例。默认值为50%。例如该实例在统计时间窗口内被调用10次,有6次调用失败,错误率为60%,超过了配置的错误率下限(50%),则从应用中移除该实例。
● 高级配置:
- 异常类型:选择网络异常+业务异常(HTTP 5xx)。
- QPS 下限:QPS按照统计时间窗口进行计算,Spring Cloud应用的统计时间窗口为10秒。当在统计时间窗口(例如10秒)内应用的QPS达到设置的下限后开始进行错误率统计分析。
- 摘除实例比例上限:摘除的异常实例比例上限,即达到阈值后,不再摘除异常实例。摘除异常实例数向下取整,例如应用实例总数为6,摘除实例比例设置为60%,摘除实例比例数为6 x 60% = 3.6,则按策略最多摘除的实例数为3。若计算结果小于1,则不会摘除实例。
- 恢复检测单位时间:在异常实例被摘除后,按单位时间线性不断累加的时间作为检测间隔,检测异常实例是否恢复正常,单位为ms。默认为30000ms,即0.5分钟。
- 未恢复累计次数上限:持续对异常实例进行检测,检测间隔随检测次数按恢复检测单位时间线性增加,当达到设置的检测次数上限后,会按最长时间间隔持续检测异常实例是否恢复。例如,恢复检测单位时间设置30000ms,未恢复累计次数上限设置为20,在第20次检测异常实例仍未恢复后,则会按10分钟(20 x 30000 ms)为间隔执行后续的检测。如果检测到实例已经恢复,则会将检测间隔重置为初始的时间间隔,即一次恢复检测单位时间。