1、Eureka服务器
基础架构:
服务注册中心:Eureka提供的服务端,提供服务注册与发现功能
服务提供者:提供服务的应用,可以是spring boot应用,也可以是其他技术平台的应用只要遵循Eureka通讯机制的应用,
服务消费者:消费者从服务注册中心获取服务列表,从而是消费者可以知道去何处调用所需要的服务
服务治理机制:
服务提供者
服务注册:服务提供者会在启动的时候发送REST请求的方式将自己注册到Eureka服务器中,同时带上了自身的一些元数据信息,Eureka服务将元数据信息存储到一个双层Map中,第一层的key是服务名,第二层的key具体的服务的实例名字,服务注册的时候需要确认一下eureka.client.register-with-eureka=true参数是否正确,这个参数为false时,不会启动注册操作。
服务同步:如图1-1所示,服务提供者会在不同的Eureka服务器中注册1或者2中,两个Eureka服务器会互相注册为服务,其中一个获取到服务的注册中心,他会请求转发到集群中的其他的Eureka中,实现服务的同步,
服务续约:注册完服务之后,服务提供者会维护一个特别的心跳告诉注册中不要把它剔除,这个操作称之为续约,其中有两个重要的参数
eureka.instance.lease-renewal-interval-in-seconds=30 续约时间默认为30s
eureka.instance.lease-expiration-duration-in-seconds=90 注册中心服务失效时间默认为90s
服务消费者
获取服务:Eureka会维护一份只读的服务清单返回给客户端,同时缓存清单会每隔30s更新一次
eureka.client.fetch-registry=true 获取服务时候,这个参数必须为true
erueka.client.registry-fetch-interval-seconds=30 这个参数更改更新时间
服务调用:通过服务名字可以获取到具体提供服务的实例名和该实例的元信息,客户端可以根据自己的需要进行调用,或者采用Ribbon,进行均衡负载的方式调用。
服务下线:系统运行过程中关闭某个服务或者重启某个服务,服务正常关闭的时候,会触发一个服务下线的请求发送给Eureka,
服务注册中心
失效剔除:注册的服务非正常下线时,Eureka会每隔60s(默认),将超市超时未续约的服务进行剔除
自我保护:
eureka.server.enable-self-preservation=false,关闭保护机制,以确保注册中心可以将不可用的实例正确剔除
Eureka配置
客户端配置主要分两个方面:
1、服务注册相关的配置信息,包括服务注册中心的地址、服务获取的时间间隔、可用区域等。
2、服务实例相关的配置信息,包括服务实例的名称、ip地址、端口号、健康检查路径等。