Eureka是Netflix公司开发的一套开源服务框架,后被引入到Spring的生态圈中,于是有了Spring Cloud Eureka。Spring Cloud Eureka是对原版的二次开发,再次基础上添加了Spring Boot的自动化配置,使用者可以通过简单的注解配置即可完成注册中心构建,实例的注册和服务的消费。但是这三点都不是本文要讲的,本文要说的是在实例注册后,实例通过心跳告诉注册中心自己还“活着”并为自己“续约”。
切入重点,也就是Eureka里面干活的类:
com.netflix.discovery.DiscoveryClient
这是Eureka的核心类,他的主要工作就是和Eureka服务端(即注册中心)进行交互,涉及到的操作有:服务注册,服务续约,服务删除。在DiscoveryClient的构造器中调用了如下方法,也就是续约操作存在地方。
private void initScheduledTasks() {
if (clientConfig.shouldFetchRegistry()) {
// registry cache refresh timer
int registryFetchIntervalSeconds = clientConfig.getRegistryFetchIntervalSeconds();
int expBackOffBound = clientConfig.getCacheRefreshExecutorExponentialBackOffBound();
scheduler.schedule(
new