ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

springcloud:注册中心组件Eureka的架构、使用、集群及常用配置

springcloud:注册中心组件Eureka的架构、使用、集群及常用配置 Eureka 是基于REST用于服务管理其客户端实现了负载均衡功能。Eureka维护服务的注册列表以及检查这些服务状态通过心跳。一、架构图1、Eureka服务器把服务注册信息保存在内存的注册中心里面并通过客户端的心跳来其最新状态2、Eureka客户端通过服务发现功能去获取服务器中的注册列表并保存到本地缓存。因此并不需要每次都去服务器获取服务注册信息提升性能。3、服务提供者是客户端的一种角色主要的工作向服务器注册服务发送主机、端口、健康检测连接等信息发送心跳给服务器向服务器获取注册列表4、服务调用者对发布到服务器的服务进行查找和调用其他功能和服务提供者类似。二、实现要点1、服务器a、在pom.xml中引入spring-cloud-starter-eureka-server依赖。b、启动类中加入EnableEurekaServerc、在yaml文件中设置端口,并把注册自身给去掉。eureka.client.registerWithEureka和eureka.client.fetchRegistry设置为false2、服务提供者a、在pom.xml中引入spring-cloud-starter-eureka依赖。b、yml文件中设定应用名称、设置服务器的地址信息等c、启动类中加入EnableEurekaClient3、服务调用者a、在pom.xml中引入spring-cloud-starter-eureka、spring-cloud-starter-ribbon等依赖。b、yaml文件中设定应用名称、端口、服务器的地址信息等c、启动类中加入EnableEurekaClient包含了EnableDiscoveryClient,用于去Eureka中发现服务d、服务调用类中加入LoadBalanced用于让RestTemplate具备访问分布式服务的能力。三、Eureka集群1、服务端两个服务端分别向对方进行注册。启动时会报错提醒需要向自身注册此异常可以忽视。2、服务提供方需要向所有服务器注册3、服务调用者需要向所有服务器注册并根据获取到的服务信息调用服务。四、常用配置说明1、心跳检测心跳机制Eureka内部实现了客户端实例默认每隔30秒向服务端发送心跳默认90秒内没收到客户端实例的心跳则把该实例从注册表中删除。而这个清除的操作由一个定时器执行默认情况下60秒执行一次。客户端发送心跳的时隔调整eureka.instance.leaseRenewalIntervalInSeconds5默认是30单位是秒服务端定时器执行间隔调整eureka.server.eviction-interval-timer-in-ms30000默认是60秒单位是毫秒上次接收到心跳到下次接收到心跳的超时时间eureka.instance.leaseExpirationDurationInSeconds15默认是90单位是秒这个值建议设置大于leaseRenewalIntervalInSeconds。定时器需要在服务端的自我保护模式关闭时才会执行清除。2、注册表抓取时隔机制客户端默认周期性地30秒向服务端抓取注册表中可用的服务列表信息并把抓取结果更新到本地缓存。eureka.client.registry-fetch-interval-seconds3默认30单位秒3、自我保护模式机制当客户端的心跳失败率超过一定比例服务就会被保护起来不会被马上从注册表中删除。eureka.server.enable-self-preservationfalse(默认true开启)
返回列表