Keywords: Microservice, Health detection, Time series, Load forecasting.
Abstract: Health detection relies on the heartbeat mechanism in Eureka. The heartbeat mechanism analyzes the status
of service by periodically detecting the running status of the service node. But it doesn't care whether the
service runs successfully, therefore reducing the success rate of service calls. In order to solve the problem,
this paper proposes a new method for load forecasting based on time series. The value of load forecasting is
used to measure the health of the service node quantitatively, and the number of available instances is
effectively reduced during load balancing and the load balancing efficiency was improved.
1 INTRODUCTION
With the rapid development of computer network, the
drawbacks of the traditional application architecture
become more and more obvious, which seriously
restrict the rapid innovation and agile delivery of the
business (Zheng Mingzhao et al. 2017). The
microservice architecture was proposed to solve the
problems in traditional application architectures
(Lewis et al. 2014).
Spring Cloud is an open source microservice
development tool based on Spring Boot. Spring
Cloud Eureka module has been used for service
governance, and providing services such as health
detection. At present, the health detection in Spring
Cloud Eureka relies on the heartbeat mechanism
(Smaoui et al. 2017). The mechanism gets the running
status of service by periodically detecting the running
status of the service node, regardless of whether the
service can run successfully. This approach will have
resulted in some failed service calls, which will
reduce the success rate of service calls. In order to
solve the above problem, a health detection method
based on load forecasting for quantitative analysis of
service health has been proposed. In this method,
while monitoring the performance indicators, the
health of the service node is measured quantitatively
by the load forecasting value.
Load balancing technology is the focus of
research in distributed architecture. The research
direction mainly focuses on the load balancing
algorithm, which is divided into static load balancing
algorithm and dynamic load balancing algorithm.
Static load balancing algorithm does not consider the
actual load status of the server generally. Although
the implementation of static load balancing algorithm
is simple, the effect is not good mostly. Dynamic load
balancing algorithm requires that service load
information can be sent in smaller time intervals, even
in real time, which results in significant consumption
of server resources. Therefore, some people proposed
some load forecasting algorithms. Li Qinghua and
Guo Zhixin (2002) proposed a BP forecasting
algorithm based on artificial neural network. Xu
Jianfeng f et al. (2000) proposed a forecasting
algorithm based on filtering theory. Meng Limin and
Xu Yang (2016) proposed a load forecasting
algorithm based on dynamic index. Wolski et al.
(2000) proposed a forecasting algorithm based on
CPU utilization in UNIX system. Yuan Gang (2015)
proposed a load forecasting algorithm based on
service classification. Yang Wei et al. (2006)
proposed a load forecasting algorithm based on time
series and so on.
The algorithms proposed in [4-6] are relatively
complicated. The algorithms did not consider the
resource consumption of the load forecasting, which
will have affected the execution efficiency of the
service node. The algorithms proposed in [7-8]
calculated the current load value of the service
quantitatively, and calculated the load forecasting
value comprehensively by monitoring the number of
service requests, without considering the relationship
between the load values at different time (Dinda