论文部分内容阅读
微服务架构是一种细粒度、面向服务的软件架构,通过采用一套微服务的方式来构建一个应用,具有业务敏捷、松耦合、扩展性强、复杂度可控、按需独立伸缩等优点,已经成为工业界和学术界研究的热点,被业界公认为云计算时代互联网应用的主要构建方式。Gartner的研究表明,截止到2017年有超过20%的大型机构通过使用微服务来提高应用系统的灵活性和可扩展性。 面向服务的架构(Service-Oriented Architecture,SOA)应用的服务治理是指对服务进行统一、有效管控,保障服务的高效、健康运行,主要包括服务规划治理、服务建设开发治理、服务运营治理、服务优化等方面。微服务架构下的服务治理的核心理念是服务自治,利用云计算的弹性、微服务架构的敏捷性,结合服务治理,逐步实现微服务的自治。微服务治理的关键技术包括服务调用、服务注册和发现、负载均衡、弹性伸缩、健康管理、服务降级、流量控制等。其中,服务调用、服务注册和发现是服务治理的基础;负载均衡、弹性伸缩是保障微服务架构可扩展性、服务SLA的关键。服务治理是微服务架构从理论到应用的重要保障。但是,“多、散、动”的微服务特征给服务治理带来了严峻的挑战。为此,本文对微服务架构以及服务治理关键技术进行了研究,取得了如下主要创新点: (1)针对差异化服务请求和异构集群环境下,负载均衡面临自适应性差和调频问题,提出了最短排队等待时间负载均衡算法SQLB。为建立准确的排队等待时间的预测模型,提出了基于多元线性回归模型的时间权重在线学习算法OLTW。通过大量的实验证明了排队等待时间预测算法的准确性和自适应性,以及负载均衡算法在请求吞吐量、请求响应时间和请求失败率方面的有效性。 (2)基于服务能力模型的微服务弹性资源供给算法SCMARP。为建立准确的服务能力模型,提出了基于非线性回归的服务能力模型算法NRSCM。在资源供给阶段,SCMARP算法根据当前服务请求负载、服务请求范式和已建立的服务能力模型,快速、准确地进行资源伸缩,从而减少违反请求响应时间的服务等级协议(Service-Level Agreement,SLA)的数量和资源使用量。 (3)“多而动”的微服务特征给服务发现带来了挑战,集中式的服务发现机制成为单一故障点和性能瓶颈,分布式的服务发现机制面临快速一致性和可用性的矛盾。通过对微服务架构应用的深入研究,提出了基于网络区域的微服务发现机制NAMD。子网内基于多播的全分布式微服务发现机制,子网间通过服务注册中心实现全网的服务发现。两级服务发现机制提高了服务发现的网络适用性、可用性、快速一致性和扩展性。 (4)设计并实现了分布式微服务框架Tetris,提供高性能、透明化的服务调用机制和一体化的服务治理功能。使用户专注于业务实现,而无需处理底层复杂的通信问题,以微服务的方式快速构建稳定、可靠的分布式应用。目前,基于Tetirs构建的大规模智能作业调度系统已在生产环境中部署和运行。