1.服务注册
服务提供者在启动的时候会像注册中心发送rest请求注册自己到Eureka server上,同事带上自身的一些元数据,Eureka在接收到这个信息的时候会采用双层Map结构存储,其中第一层key是服务名,第二层key是具体的服务实例。Ribbon的负载均衡中就是就是采用获取服务名下面的服务实例进行负载均衡。
2.服务同步
服务提供者分别注册到了两个不同的注册中心上去(注册中心采用的是高可用部署,自己注册自己),注册中心接收到一个服务的时候会将请求转发到另一个注册中心上,从而实现注册中心的服务同步,所有任意一个注册中心都可以获取到注册的服务信息。
3.服务续约
实例在注册中心注册完成后,服务提供者会向注册中心维持一个心跳任务,来防止注册中心的剔除操作。
4.获取服务
当我们需要服务消费时,它会发送一个rest请求到服务注册中心,来获获取注册的服务清单,为了Eureka servr 的性能考虑,这份服务只可读,同时缓存时间默认是30s,缓存时间可以配置。
5.服务调用
在消费者获取到服务清单后,通过服务的实例名称可以获取到实例的元信息,基于详细信息的基础上,Ribbon会默认采用轮询的方式进行调用,从而实现客户端的负载均衡。
6.服务下线
系统运行时存在服务的关闭与重启实例,当服务进行正常关闭时,会将服务状态设置为下线状态。
微服务学习中,每天学习持续更新!!