这里讲解的是Eureka的源码看的方法,没有美味的蛋糕,这是看源码的日记
上面是eureka的配置类,它的作为客户端的核心bean都在这里里面
下面是这个类的分析 那些个无用的 代码我去除了
public class EurekaClientAutoConfiguration {
// 向服务端注册类
@Bean(destroyMethod = "shutdown")
@ConditionalOnMissingBean(value = EurekaClient.class, search = SearchStrategy.CURRENT)
public EurekaClient eurekaClient(ApplicationInfoManager manager, EurekaClientConfig config) {
return new CloudEurekaClient(manager, config, this.optionalArgs,
this.context);
}
// 自动注册服务类。
@Bean
@ConditionalOnBean(AutoServiceRegistrationProperties.class)
@ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", matchIfMissing = true)
public EurekaAutoServiceRegistration eurekaAutoServiceRegistration(ApplicationContext context, EurekaServiceRegistry registry,
EurekaRegistration registration) {
return new EurekaAutoServiceRegistration(context, registry, registration);
}
}
作为一个像我们这一类小白,重一些博客看到这就差不多了,接下来呵呵打开 Wireshark 抓包工具,不管Eureka干了啥,肯定要向服务端发数据。
这就是抓到的 包 框起来的看起来 就很像。
终于找到了,就在 这个类 AbstractJerseyEurekaHttpClient
得到AbstractJerseyEurekaHttpClient implements EurekaHttpClient
EurekaHttpClient 就是注册的标准接口
这三个接口 就是 服务注册,心跳,拉取注册中心的服务到本地 好远程调用。
在这AbstractJerseyEurekaHttpClient 的 相对应的方法 打上断点 ,看那个类调用的这个类,找找逻辑 ok
下面就是流程图了
EurekaAutoServiceRegistration 开启注册 CloudEurekaClient 来完成注册拉取服务相关逻辑