Eureka的客户端和服务端

  • 服务端:就是注册中心,接受其他服务的注册
  • 客户端:客户端是java客户端,用来注册,可以实现负责均衡等功能
  • Eureka有三种角色:1、服务提供者、服务消费者、注册中心

Eureka的搭建

1、

01-springcloud之Eureka_客户端

2、

项目创建完成之后,在项目启动上添加注解,标记该项目是Eureka Server
01-springcloud之Eureka_端口号_02

3、添加基本配置信息
# 应用名称(当前服务的名称)
spring.application.name=test_eureka
# 设置端口号
server.port=1111
# 默认情况,eureka server也是一个普通的微服务,所以它既是注册中心,又是普通服务
#所以eureka.client.register-with-eureka属性的意思是自己是否注册自己(集群时为true)
eureka.client.register-with-eureka=false
# 是否从eureka server上获取注册信息
eureka.client.fetch-registry=false
4、输入ip+端口,打开这个页面,说明服务启动成功

01-springcloud之Eureka_客户端_03

Eureka其他一些细节

Eureka可以分为两大部分,Eureka Server 和 Eureka Client

Eureka Server

Eureka Server 主要提供了三个功能:

  • 1、服务注册:所以要的服务都注册到Eureka Server上面来
  • 2、服务注册表:注册表就是所有注册上来的服务的一个列表,Eureka Client在调用服务时,需要获取这个注册表,一般来说,这个注册表会缓存下来,如果缓存失效,则直接获取最新的注册表
  • 3、同步状态:Eureka Server的通过注册、心跳等机制,和Eureka同步当前客户端的状态
Eureka Client

Eureka Client 主要是用来简化和每一个服务和Eureka Server之间的交互,Eureka Client会自动拉取、更新、以及缓存Eureka Server中的信息,这样,即使Eureka Server所有的节点都宕机,Eureka Client依然能够获取到想调用的服务的地址(地址可能不准确:因为服务提供这的地址可能会发生改变)

服务续约

Eureka Client注册到Eureka Server上之后,事情远没有结束,刚刚开始,默认情况下,Eureka Client每隔30s就要向每个30s就要向Eureka Server发送一条心跳信息,告诉Eureka Server自己还在运行,如果Eureka Server连续90s没有收到Eureka Client的续约消息(连续3次没有发送),则他会认为Eureka Server会认为Eureka Client已经掉线了,会将掉线的Eureka Server从当前的服务注册列表中删除
服务续两个相关的属性(不建议修改)

//表示服务续约的时间,默认是30s
eureka.instance.lease-renewal-interval-in-seconds=30
//服务器的失效时间,默认是60s
eureka.instance.lease-expiration-duration-in-seconds=90
服务下线

Eureka Client下显时,他会主动发送一条消息,告诉Eureka Serve,它要下线了

获取注册表信息

Eureka Client从Eureka Server获取服务的注册信息,并将其缓存在本地,本地的客户端,在调用远程的服务时候,会从该信息表中查询出远程服务的ip地址、端口号等信息。Eureka Client上缓存的服务注册表信息会定期更新(30s),如果Eureka Server返回的注册表信息与本地的注册表信息不同的话,Eureka Client会在自己处理;涉及到的两个属性

//是否允许获取注册表的信息
eureka.client.fetch-registry=true
//Eureka Client上缓存的注册信息的定期更新时间
eureka.client.registry-fetch-interval-seconds=30