《spring cloud微服务实战》读书笔记——Spring Cloud Eureka(五)Eureka详解

来源:互联网 发布:ps修淘宝图片 编辑:程序博客网 时间:2024/05/16 13:47

Eureka基础架构
Eureka服务治理基础架构的三个核心要素:
服务的注册中心:Eureka提供的服务端,提供服务注册和发现功能
服务的提供者:提供服务的应用,可以是spring boot项目,也可以是其他技术实现的应用,但是前提是一定要遵循Eureka的通讯机制的应用。它将自己注册到注册中心,以供其他的服务进行发现。
服务的消费者:消费者应用从服务的注册中心中拉取服务列表,从而是消费者可以知道去什么地方调用需要的服务

服务治理机制
这里写图片描述
服务提供者:
服务提供者在启动的时候会通过rest请求方式将自己注册到Eureka Server上,同时也带了一些自身的元数据。Eureka Server在接收到这些信息后将其元信息保存在一个双层Map中,其中第一层的key是服务名,第二层的key是具体服务的实例名。如图
这里写图片描述
注意:在服务注册的时候要确保eureka.client.register-with-eureka=true的参数正确,该参数的意思是是否注册到注册中心中,默认是true。
服务的同步:
上面的架构图中,两个服务的提供者分别注册到了两个不同的注册中心上,所以
他们的信息是被两个服务注册中心所维护着。此时,因为服务注册中心是高可用的,所以当服务提供者发送注册请求到一个服务的注册中心时,它会将请求转发给集群中相连的其他的注册中心,这样就实现了注册中心之间服务的同步。通过服务的同步,两个服务提供者的服务信息就可以从这两台服务注册中心中的任意一台得到。
服务的续约:
在注册完服务之后,服务的会维护一个心跳用来持续告诉Eureka,防止服务被剔除,这就是服务的续约。
服务的续约由两个参数来设定
eureka.instance.lease-renewal-interval-in-seconds=30
eureka.instance.lease-expiration-duration-in-seconds=90
第一个参数用于定义续约任务的间隔时间
第二个参数用于定义服务失效的时间

服务的消费者
服务的调用
服务的消费者在获取服务清单后,通过服务名可以获取到具体提供服务的实例名和元数据。
服务的下线
在实例进行正常关闭操作时,它会触发一个服务下线的rest请求给Eureka Server。服务端在接收到请求之后会将该实例置为DOWN状态,并将此时间传播出去。

服务的注册中心
失效剔除
当服务实例因为内存溢出,网络等原因导致服务不能正常工作,但是注册中心却没有收到服务实例的下线请求。为了解决这个问题,Eureka Server在启动的时候会创建一个定时任务,该定时任务的作用是每隔60s,将当前服务列表清单中超过90s没有续约的服务剔除出去。
自我保护机制
可以使用eureka.server.enable-self-preservation=false参数来关闭自我保护机制。

eureka的详细配置信息

阅读全文
0 0