Eurka 初解(仅供学习参考)

Eureka 是什么 ?

在介绍操作前,首先来了解一下 Eureka 是什么?Eureka 是 Netflix 公司开源的一个基于 REST 服务的服务发现框架,主要用于AWS云,用于定位服务,以实现中间层服务器的负载平衡和故障转移。

SpringCloud 对 Netflix 众多的开源框架都封装到其子项目spring-cloud-netflix 中,而 Eureka 就是其中的一个。SpringCloud 可以通过 Eureka 来完成微服务的服务注册与发现,当然你也可以使用其他的服务发现框架在 SpringCloud 中。

2.实现原理

这里写图片描述
EureKa采用C-S的设计架构,即包括了Eureka Server(服务端),EureKa client(客户端)。
1.EureKa Server 提供服务注册,各个节点启动后,在EureKa server中进行注册;

2 EureKa Client 是一个Java客户端,用于和服务端进行交互,同时客户端也是一个内置的默认使用轮询负载均衡算法的负载均衡器。在应用启动后,会向Eueka Server发送心跳(默认30秒)。如果EUR额卡 Server在多个心跳周期内没有接受到某个节点的心跳,EureKa Server将会从服务注册表中将这个服务移出(默认90秒)。

自我保护模式:

默认情况下,如果Eureka Server在一定时间内(默认90秒)没有接收到某个微服务实例的心跳,Eureka Server将会移除该实例。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,而微服务本身是正常运行的,此时不应该移除这个微服务,所以引入了自我保护机制。

自我保护机制的工作机制是如果在15分钟内超过85%的客户端节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,Eureka Server自动进入自我保护机制,此时会出现以下几种情况:

1、Eureka Server不再从注册列表中移除因为长时间没收到心跳而应该过期的服务。
2、Eureka Server仍然能够接受新服务的注册和查询请求,但是不会被同步到其它节点上,保证当前节点依然可用。
3、当网络稳定时,当前Eureka Server新的注册信息会被同步到其它节点中。

zookeeper与eurka的区别

1) ZooKepper侧重CP设计,强调一致性。ZooKeepper结构主从结构,有leader,其他节点follwer。当在ZooKeeper节点宕机个数超过一半时和zk集群在选举时,zk是不推荐使用。Zk有心跳机制。
2) Eureka侧重AP设计,强调可用性。Eureka结构peer to peer 点对点,每个节点互为主从,即主节点,又是从节点。每个节点都会同步所有的数据,Eureka数据都在内存中!,底层就是concurrentHashMap,防止高并发线程安全。多级缓存,4级。应对高并发。Eureka心跳机制,心跳从client端,每隔30s,向服务端发起心跳请求,顺便检查数据是否变化没,如果没有变化,等待下一个周期来发起心跳。如果服务列表变化,就从Eureka中同步列表。即使所有的节点宕机,依然可以,client在发起端,它是EurekaClient,本地缓存之前路由,就直接转向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值