eureka
不忘初心,方得始终!GO
这个作者很懒,什么都没留下…
展开
-
Spring Cloud Eureka 源码跟踪(5.客户端负载均衡)
5.1 LoadBalancerAutoConfiguration 客户端负载均衡器的的自动配置类型 5.2 restTemplate调用请求时会被LoadBalancerInterceptor类的intercept方法拦截 5.3 intercept方法调用LoadBalancerClient接口实现类RibbonLoadBalancerClient的execute方法执行 5.4 ILoadBanancer loadBalancer=this.getLoadBalancer(serviceId)根原创 2020-06-11 00:35:25 · 171 阅读 · 0 评论 -
Spring Cloud Eureka 源码跟踪(4.服务注册中心)
通过DiscoveryClient.register方法发送请求到AbstractInstanceRegistry中的register方法注册, 存储在ConcurrentHashMap<String, Map<String, Lease>> registry对象中。原创 2020-06-11 00:30:34 · 97 阅读 · 0 评论 -
Spring Cloud Eureka 源码跟踪(3.服务续约)
通过定时线程类(ScheduledExecutorService scheduler)间隔renewalIntervalInSecs(默认30s)执行DiscoveryClient.HeartbeatThread方法获取服务。 this.scheduler.schedule(new TimedSupervisorTask(“heartbeat”, this.scheduler, this.heartbeatExecutor, renewalIntervalInSecs, TimeUnit.SECONDS原创 2020-06-11 00:26:49 · 128 阅读 · 0 评论 -
Spring Cloud Eureka 源码跟踪(2.服务获取)
说明:通过定时线程类(ScheduledExecutorService scheduler)间隔renewalIntervalInSecs(默认30s)执行 DiscoveryClient.CacheRefreshThread方法获取服务。 scheduler.schedule调用完整代码 this.scheduler.schedule(newTimedSupervisorTask(“cacheRefresh”,this.scheduler,this.cacheRefreshExecutor原创 2020-06-11 00:24:02 · 146 阅读 · 0 评论 -
Spring Cloud Eureka 源码跟踪(1.服务注册)
DiscoveryClient类的initScheduledTasks()方法会创建InstanceInfoReplicator(线程对象),并将当前实例传入其构造函数(函数中定义线程池), 然后执行线程对象启动方法 启动方法中定义线程池线程 间隔initialDelayMs,执行InstanceInfoReplicator.run()方法, run()会回调discoveryClient中的注册方法 通过REST请求将客户端元数据(InstanceInfo)发送给注册中心。 ...原创 2020-06-11 00:16:49 · 177 阅读 · 0 评论 -
Spring Cloud Eureka 原理结构
“服务注册中心-1” 和 “服务注册中心-2”,他们互相注册组成高可用集群。 “服务提供者” 启动了两个实例,一个注册到“服务注册中心-1” 上,另外一个注册到 “服务注册中心-2” 上。 还有两个 “服务消费者” ,它们也都分别指向了一个注册中心。 服务提供者 服务注册 “服务提供者” 在启动的时候会通过发送REST请求的方式将自己注册到Eureka Server 上,同时带上了自身服务的一些元数据信息。 Eureka Server 接收到这个REST请求后,将元数据信息存储在一个双层结构Map中,.原创 2020-06-11 00:02:05 · 154 阅读 · 0 评论