Abstract:
More and more cloud services are shifting from monolithic architecture to microservice architecture. Under the microservice architecture, requests will traverse multiple microservices to form a microservice chain. Multiple microservice chains may compete for resources, and the block of a single microservice may be transmitted to any related microservice chain and result in timeout, thus violating the service level objectives (SLO) requested by the user. This paper proposes a dynamic load balancing algorithm for microservice chains that integrates service mesh and deep reinforcement learning, which can satisfy user expectations as much as possible in the face of dynamically changing loads. Experimental results show that the performance of service-mesh based microservice chain split module is improved by more than 10 times compared with the existing methods, and the load balancing algorithm can reduce SLO violations by at least 46% comparewith the benchmark method.