Spirng Cloud Eureka注册中心知识点(整理)

Spirng Cloud Eureka注册中心知识点(整理)

微服务中存在的问题:

  • 服务提供者(provider)URL地址硬编码(服务的url地址和端口变化了)问题?服务提者provider死掉了,消费者consumer怎样才能知道?

Spirng Cloud Eureka使用Netflix Eureka来实现服务注册与发现(服务治理),解决服务提供者url地址硬编码问题。

1.什么是注册中心

注册中心是什么,怎样理解dubbo+zookeeper?

  • 我们可以认为注册中心就是:服务管理平台,来管理所有的微服务,治理所有的微服务
  • dubbo+zookeeper缺点是:不能确保服务的状态,不能确保服务存在

2.Eureka

2.1架构图

在这里插入图片描述

  • Eureka服务端(Eureka Server): 服务注册中心
  • Eureka客户端(Eureka Client) : 此客户端并不是指服务消费者,只要注册到Eureka注册中心的服务都可以称为Eureka Client
    注:上图中ApplicationClient和ApplicationService都可以称为Eureka Client

2.2Eureka Client与Eureka Server交互过程

服务注册(register)

Eureka Client发送REST请求(理解什么是REST请求)

服务续约(renew)

周期性的发送心跳持续通知Eureka Server,续约服务,确保服务一直处于可用状态防止被剔除

#续约间隔时间,默认30秒
eureka.instance.lease-renewal-interval-in-seconds: 30

获取服务列表(get registry)

#每隔30秒获取服务中心列表(只读备份)
eureka.client.registry-fetch-interval-seconds: 30

服务调用

消费者收到服务清单(服务列表)后,根据清单中的服务,查找该服务的地址

服务下线(cancel)

Eureka Client提前发送REST请求给Eureka Server,告诉Euraka Server自己要下线了

失效剔除(evict)

网络故障等原因,导致Eureka Client不能提供服务,无法给Eureka Server发送下线请求,因此需要有剔除机制。

  • 服务超过90秒(默认)没有续约,会被剔除
  • Eureka Server每隔60秒(默认)会剔除一次
 #租约到期,服务时效时间,默认值90秒
eureka.instance.lease-expiration-duration-in-seconds: 90

剔除时间可以是(90秒到150秒的一个范围)

自我保护

当在短时间内,统计续约失败的比例,如果达到一定阈值,则会触发自我保护的机制。在该机制下,Eureka Server不会剔除任何的微服务,等到正常后,在退出自我保护机制。

#向Eureka服务中心集群注册服务
eureka.server.enable-self-preservation: false # 关闭自我保护模式(默认值是打开)

Eureka会统计服务实例最近15分钟心跳续约的比例是否低于85%,如果低于则会触发自我保护机制。

3.Eureka的配置整理

application.properties配置整理:

  • eureka_server模块的配置:
# 端口
server.port: 10086
# 应用名称,会在Eureka中作为服务的id标识(serviceId)
spring.application.name: eureka-server
# EurekaServer的地址,现在是本地IP,如果是集群,需要写其它Server的地址。
eureka.client.service-url.defaultZone: http://127.0.0.1:10086/eureka
# 是否抓取注册列表,可以关闭
eureka.client.fetch-registry: false
# 是否注册服务中心Eureka,eureka_server不需要注册到Eureka
eureka.client.register-with-eureka: false
  • provider_service模块的配置:
# 应用名称
spring.application.name: provider-service
# 注册中心地址
eureka.client.service-url.defaultZone: http://127.0.0.1:10086/eureka
  • consumer_service模块的配置:
# 应用名称
spring.application.name: consumer-service
# 注册中心地址
eureka.client.service-url.defaultZone: http://127.0.0.1:10086/eureka

java代码这块省略。
可以通过:http://127.0.0.1:10086/来查看服务状态
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值