Font Size: a A A

Research And Implementation Of High Availability Service Registry For Massive Microservices

Posted on:2020-08-27Degree:MasterType:Thesis
Country:ChinaCandidate:Y X LiuFull Text:PDF
GTID:2428330590460621Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
With the rapid popularity and coverage of the mobile Internet,the traditional single software architecture has been challenging to meet the rapid expansion of Internet companies.More and more Internet companies adopt microservice architecture.The ever-expanding business has dramatically increased the number of microservices.However,the current mainstream open source service registries are not very suitable for the massive microservices.For example,ZooKeeper ensures the strong consistency of the cluster and sacrifices availability.Eureka even affects the service consumers when facing massive microservices.Therefore,how to design and implement a high availability service registry for mass microservices has specific research value and practical significance.Based on the application scenario of massive microservices,this paper first introduces the essential characteristics of a service registry and analyses its trade-offs for high availability and strong consistency.Then,based on Eureka,this paper proposes a high availability service registry for massive microservices called HASR.HASR solves the single-machine performance bottleneck of service registry facing massive microservices through sharding technology.Besides,HASR adds an address management module so that the service registry can be dynamically expanded.HASR solves the problem that the performance improvement is not evident after expansion by layering the server nodes.The server is divided into a storage layer and a cache layer.Write requests are forwarded only between nodes in the storage layer.HASR modifies the way the client acquires the service address,which reduces the unnecessary memory overhead of the client.HASR implements update push with long polling,which improves the timeliness of service updates.To improve the availability and the performance of HASR,this paper optimizes HASR by three points.First,to prevent service registry failures from affecting existing services,this paper introduces disk storage capabilities on the HASR client.Secondly,to reduce the unnecessary consumption caused by frequent switching connections,this paper adapts the persistent connections to optimize the communication mode between service nodes.Thirdly,this paper proposes an improved load balancing algorithm called LB-HASR,which selects response time and load rate as critical indicators to achieve better load effect in the deployment scenarios of heterogeneous nodes in multiple computer rooms.Finally,this paper tests and analyzes HASR in four aspects: availability,performance,scalability,and load balancing.The results show that HASR has higher availability,better performance,and scalability than Eureka.In the heterogeneous cluster of multiple computer rooms,LB-HASR has a better load-balancing effect than BAR(Best Available Rule)and WRTR(Weighted Response Time Rule)which are commonly used by Eureka.
Keywords/Search Tags:Massive Microservices, Service Registry, High Availability, Load Balancing
PDF Full Text Request
Related items