Eureka服务注册

为什么服务注册?

服务注册可以帮助所有服务都注册并查找在Eureka这样的服务器上,因此能够很好适应服务地点配置的更改。

Eureka服务注册发现流程

服务注册是从生产者角度来说的,就是服务在启动的时候将信息注册到注册中心,由注册中心进行服务的统一管理。

服务发现则是从消费者角度来说的,就是客户端每隔一段时间去注册中心获取注册表信息。在Eureka中,client是从readOnly缓存中获取数据的,并且通过两个周期之间进行增量更新。

在服务注册之后,一个client发送取消请求或者Eureka Server在多个心跳周期都没有收到client发送的心跳,那么该client节点就会从服务注册中移除。

在client实际访问服务时,若服务只部署了一个节点,那么就可以通过ip+端口访问;若是部署了很多节点,就可以通过域名访问,然后通过nginx转发到某节点。

Eureka自我保护机制

当15分钟内超过80%都没有正常心跳的话,那么Server就会认为网络故障,进入自我保护机制。

在此机制中,若某些服务节点不正常下线,并不会剔除该节点,访问该节点的消费者也会获取到一个无效服务实例。也不会同步新服务注册查询请求到其他server。

Eureka多级缓存

Eureka为了避免同时读取内存数据所造成的并发冲突,采用了多级缓存提升响应速度。

  • 一级只读缓存:concurrentHashMap <K,V> readOnlyCacheMap,无过期时间,依赖定时器从readWriteCacheMap更新。
  • 二级读写缓存:LoaDing<K,V>readWriteCacheMap本质是Guava缓存,默认缓存过期时间为180s

服务注册在缓存中实际发生的是:内存更新注册表信息,同时过期readWriteCacheMap中缓存。在一段时间后(默认30s),后台定时同步缓存线程在readOnlyCacheMap更新

Ref

  1. https://blog.csdn.net/ThinkWon/article/details/104397367
  2. https://juejin.cn/post/6844904125717544973
  3. https://zhuanlan.zhihu.com/p/334711540
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值