Eureka注册中心

一、Eureka的主要功能是进行服务管理,定期检查服务状态,返回服务地址列表,自身并不提供服务也不消费服务

二、Eureka原理图形

三、服务消费可以使用工具类根据服务名称到eureka中获取对应的服务地址列表

四、就Eureka而言,所需要进行的相关配置

1:Eureka-server

a:单机版的配置

应用名称,会在Eureka中作为服务的id标识(serviceId)

spring.application.name=eureka-server

EurekaServer的地址,现在没有做集群,是自己的地址,如果是集群,需要写其集群中的eureka地址

eureka.client.service-url.defaultZone=http://127.0.0.1:10086/eureka

是否注册自己,单机版的自己不用注册

eureka.client.register-with-eureka=false

自己不拉取注册的服务

eureka.client.fetch-registry=false

若某一服务失效后,eureka剔除该服务的时间,默认60s

eureka.server.eviction-interval-timer-in-ms=60000

关闭自我保护模式.默认是开启状态

eureka.server.enable-self-preservation=false

b:集群版的配置

应用名称,会在Eureka中作为服务的id标识(serviceId)

spring.application.name=eureka-server

EurekaServer的地址,现在没有做集群,是自己的地址,如果是集群,需要写其集群中的eureka地址

eureka.client.service-url.defaultZone=${defaultZone:http://127.0.0.1:10086/eureka}

是否注册自己,单机版的自己不用注册

eureka.client.register-with-eureka=false

自己不拉取注册的服务

eureka.client.fetch-registry=false

2:user-server

将user-service服务注册到eureka中

eureka.client.service-url.defaultZone=http://127.0.0.1:10086/eureka

默认注册时使用的是主机名或者localhost,现在改为使用ip进行注册

eureka.instance.ip-address=127.0.0.1
eureka.instance.prefer-ip-address=true

服务续约,定时向EurekaServer发起Rest请求,告诉EurekaServer:“我

还活着”,避免服务被eureka从注册中心剔除

续约间隔时间,默认30s

eureka.instance.lease-renewal-interval-in-seconds=5
#续约失效时间,默认90s
eureka.instance.lease-expiration-duration-in-seconds=5

3:consumer-demo

让consumer-demo服务消费者到eureka中拉取服务列表

eureka.client.service-url.defaultZone=http://127.0.0.1:10086/eureka

服务消费者到eureka中拉取服务列表的间隔时间,默认30s

eureka.client.registry-fetch-interval-seconds=10

三、Eureka的原理

Eureka Server提供服务的注册服务
各个微服务节点通过配置启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中的将会存储所有可用服务节点信息,服务节点的信息可以在界面中直观看到

EurekaClient通过注册中心进行访问
是一个Java客户端,用于简化EurekaServer的交换,客户端同时也具备一个内置的,使用轮询负载算法的负载均衡器,在应用启动后,将会向EurekaServer发送心跳(默认周期30秒),如果EurekaServer在多个心跳周期内没有接受到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)

服务的注册:将服务注册到注册中心
服务的发现:从注册中心中获取服务信息,主要以key【服务名】,value【服务地址】

Eureka流程:

1、先启动Eureka注册中心

2、启动服务提供者payment支付服务

3、支付服务启动后会把自身信息,比如(服务地址)会以别名的形式注册到Eureka中

4、消费者order服务在调用接口时,使用服务别名去注册中心获取实际的RPC远程调用地址

5、消费者获取调用地址后,底层实际是利用HttpClient技术实现远程调用

6、消费者获取调用服务地址后会缓存在本地JVM内存中,默认每间隔30秒更新一次服务调用地址

四、什么是自我保护模式

默认情况下,如果EurekaServer在一定时间内没有接受某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒),但是当网络分区故障发生(延迟、卡顿、拥挤)时,微服务与EurekaServer之间无法正常通信,EurekaServer会误判微服务已经挂掉了,90秒后将该微服务的注册信息移除,但微服务本身是正常的,Eureka通过“自我保护”来解决这个问题

posted @ 2020-09-16 23:01  jock_javaEE  阅读(222)  评论(0)    收藏  举报