使用场景
封装Netflix Eureka,通过SpringBoot的自动配置实现。
Eureka服务端与客户端均采用java语言编写,所以Eureka主要使用于java实现的分布式系统,或者与JVM兼容语言所构建的系统。
服务注册
服务注册中心:微服务向注册中心发送REST请求,登记自己的主机、端口号、通信协议等元数据;存储在一个双层结构Map中,其中第一层是微服务名,第二次是具体服务的实例名;
指定服务注册中心地址:
eureka.client.serviceUrl.defaultZone=xxxx
服务发现:
客户端调用服务注册中心的所有服务实例清单,从清单中以某种负载均衡策略取出一个服务实例进行调用;
实际中,服务实例清单通过缓存、剔除等机制实现客户端对服务的调用,服务清单30秒更新一次;
允许服务清单获取服务名:
eureka.client.fetch.registry=true
设置更新服务清单间隔时间
eureka.client.registry.fetch.interval.seconds=30
心跳检查:
微服务每30秒向注册中心发送一次Renew操作,以续约
eureka.instance.leaseRenewalIntervalInSeconds=30
注册中心90秒没收到Renew操作,则剔除相应的微服务
eureka.instance.leaseExpirationDurationInSeconds=90