学习目标
-
Eureka主流程推导
-
Eureka源码分析
第1章 核心流程
1.1 Eureka做了什么事
首先我们都明白,Eureka是用在做服务注册的,而注册中心要实现什么功能呢?这个必须明确了。
-
既然是注册中心,那首先要能保存服务的ip、port等信息吧,这是Eureka-server必须提供的基础功能。
-
当我注册上来之后,还要提供一些动态感知服务上下线的功能吧,如果一个服务上下线,Eureka-server都不知道,那这个玩意儿就一文不值了。
-
当Eureka-server端感知到服务的变化之后总得通知消费端吧,这里就牵扯到时server端主动通知client端呢还是client端自己去拉取信息呢?这个现在不知道,等会去看源码验证。
-
OK,上面的功能都实现了,Eureka基本合格了,那还有一步,既然服务的ip和端口都在Eureka-server上面,那我消费端调用服务端的时候,通信是用的OpenFeign,那OpenFeign是怎么知道调用哪个服务的?之前都是写死在application.properties里面的<servicename>.ribbon.listOfServers中,现在Eureka怎么自动写进去的呢?
-
上面4个功能基本上完成了注册中心该有的功能,那这个时候我们再来思考一下,注册中心用于微服务项目中,那注册中心也作为一个服务,它也需要做集群的,这个时候我们就要想一下,做集群怎么保证数据一致性,该基于