李海飞 徐政钧
(北京邮电大学 北京100876)
近年来微服务架构发展迅猛,逐步成为主流部署模型。相对于单体架构而言,微服务架构有着明显的优势,单体架构庞大笨重,持续开发非常复杂[1],可扩展性差。微服务的诞生正好弥补了这一缺陷,微服务架构将一个应用拆分成多个微服务,每个微服务独立开发、独立部署、自由扩展,实现了开发和部署的敏捷性和灵活性[2]。但是随着人们对微服务系统的需求日益增加,对微服务架构的要求也逐渐增高,不仅要求微服务平台满足服务隔离及弹性伸缩等灵活性需求,还要求微服务平台保证高度的可靠性及可用性[3]。为此,就要尽可能避免系统故障发生,尤其是大规模系统故障。
为了实现更好的弹性伸缩及负载均衡,微服务架构将应用细分为多个微服务,且每个微服务可以部署多个实例,微服务间通过网络层相互通信,实现良好的性能隔离,同时也实现了故障隔离,这意味着微服务可以被设置为单独失败[4]。但并不表示微服务间不存在干扰。当系统达到一定规模时,微服务的数量变得相当庞大,微服务间或因为网络通信或因为资源共享联系在一起,形成一个复杂的关系网,这个网络中有一个节点出现问题,就会级联到其他节点,造成连锁反应,甚至可能发生雪崩,造成整个系统瘫痪[5-6]。
针对上述问题,本文提出了一套级联故障预测方法。基于当下具有很高研究热度的服务网格系统,本文在服务网格边缘嵌入故障预测组件,对系统进行实时监测[7-8]。……