文章目录
- 整体概念
- 单节点搭建
- 服务注册
- Eureka高可用
- 注册中心与微服务间的关系
- 自我保护
- 主要配置
整体概念 实现服务治理,即管理所有的服务信息和状态 。
服务提供方将己方调用地址注册到服务注册中心,让服务调用方能够方便地找到自己;服务调用方从服务注册中心找到自己需要调用的服务的地址 。
单节点搭建
- pom.xml
org.springframework.cloud spring-cloud-starter-netflix-eureka-server - application.properties
#是否将自己注册到Eureka Server,默认为true,由于当前就是server,故而设置成false,表明该服务不会向eureka注册自己的信息eureka.client.register-with-eureka=false#是否从eureka server获取注册信息,由于单节点,不需要同步其他节点数据,用falseeureka.client.fetch-registry=false#设置服务注册中心的URL,用于client和server端交流eureka.client.service-url.defaultZone=http://localhost:7900/eureka/ - 代码
启动类上添加此注解标识该服务为配置中心@EnableEurekaServer - 访问 http://localhost:8080/,出现下面界面代表成功
- pom.xml
org.springframework.cloud spring-cloud-starter-netflix-eureka-client - application.properties
#是否将自己注册到其他Eureka Server,默认为true 需要eureka.client.register-with-eureka=true#是否从eureka server获取注册信息, 需要eureka.client.fetch-registry=true#设置服务注册中心的URL,用于client和server端交流eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka/#Application nameeureka.instance.appname=eureka-client#web端口,服务是由这个端口处理rest请求的server.port=8081 - 访问 http://localhost:8080/,出现下面界面代表成功
- 修改本机hosts文件,绑定两个主机名,目录 c:\windows\system32\drivers\etc
127.0.0.1eureka-service1.com127.0.0.1eureka-service2.com - 配置文件
节点一:
#是否将自己注册到其他Eureka Server,默认为true 需要eureka.client.register-with-eureka=true#是否从eureka server获取注册信息, 需要eureka.client.fetch-registry=true#设置服务注册中心的URL,用于client和server端交流eureka.client.serviceUrl.defaultZone=http://eureka-service2.com:7902/eureka/#主机名,必填stance.hostname=eureka-service1.comeureka.instance.appname=EurekaService#web端口,服务是由这个端口处理rest请求的server.port=7901 节点二:#是否将自己注册到其他Eureka Server,默认为true 需要eureka.client.register-with-eureka=true#是否从eureka server获取注册信息, 需要eureka.client.fetch-registry=true#设置服务注册中心的URL,用于client和server端交流eureka.client.serviceUrl.defaultZone=http://eureka-service1.com:7901/eureka/#主机名,必填eureka.instance.hostname=eureka-service2.comeureka.instance.appname=EurekaService#web端口,服务是由这个端口处理rest请求的server.port=7902 - 结果
访问 http://localhost:7901/
访问 http://localhost:7902/
- client 功能
- 注册:每个微服务启动时,将自己的网络地址等信息注册到注册中心,注册中心会存储(内存中)这些信息 。
- 获取:服务消费者从注册中心,查询服务提供者的网络地址,并使用该地址调用服务提供者,为了避免每次都查注册表信息,所以client会定时去server拉取注册表信息到缓存到client本地 。
- 心跳:各个微服务与注册中心通过某种机制(心跳)通信,若注册中心长时间和服务间没有通信,就会注销该实例 。
- 调用:实际的服务调用,通过注册表,解析服务名和具体地址的对应关系,找到具体服务的地址,进行实际调用 。
- service 功能
- 服务注册表:记录各个微服务信息,例如服务名称,ip,端口等 。
注册表提供 查询API(查询可用的微服务实例)和管理API(用于服务的注册和注销) 。
- 服务注册与发现:注册:将微服务信息注册到注册中心 。发现:查询可用微服务列表及其网络地址 。
- 服务检查:定时检测已注册的服务,如发现某实例长时间无法访问,就从注册表中移除 。
- 当Server在短时间内丢失过多客户端时,那么Server会进入自我保护模式,会保护注册表中的微服务不被注销掉 。当网络故障恢复后,退出自我保护模式 。
- 触发条件:实际续约数 < 期望续约数 * 85%
默认情况下,注册的应用实例每半分钟续租一次,那么一分钟心跳两次,则
期望续约数 = 注册实际实例数 * 2 - 关闭自我保护
eureka.server.enable-self-preservation=false 主要配置 service 端#关闭自我保护eureka.server.enable-self-preservation=false#清理服务间隔时长eureka.server.eviction-interval-timer-in-ms=2000 client 端口#发送心跳给server的频率,每隔这个时间会主动心跳一次(默认30)eureka.instance.lease-renewal-interval-in-seconds=5#表示eureka client间隔多久去拉取服务注册信息(默认30)eureka.client.registry-fetch-interval-seconds=5# 续约到期时间(默认90秒)eureka.instance.lease-expiration-duration-in-seconds=60# 开启健康检查 需要引入actuatoreureka.client.healthcheck.enabled=true
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
