Eureka是什么
Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障
转移。服务注册与发现对于微服务架构来说是非常重要的,有了服务发现与注册。只需要使用服务的标识符,就可以访问到服务。
而不需要修改服务调用的配置文件了。功能类似于dubbo的注册中心。比如Zookeeper.
Eureka采用了C-S的设计架构。Eureka Server作为服务注册功能的服务器,它是服务注册中心。
Eureka包含两个组件:Eureka Server和Eureka Client
Eureka Server提供服务注册服务
各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到
EurekaClient是一个java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的,使用轮询(round-robin)负载算法
的负载均衡器。在应启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到
某个节点的心跳,EurekaServer将会从服务注册表表中把这个服务节点移除(默认90秒)
eureka自我保护机制:
(1)一句话:某时刻某一个微服务不可用了,eureka不会立刻清理,依旧会对该服务的信息进行保存。
(2)默认情况下,如果eurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。
但是当网络分区故障发生时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了-----因为微服务本身其实是健康的,此时本不应该注销这个微服务。Eureka通过“自我保护模式”来解决这个问题----当EurekaServer节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式。一旦进入该模式,EurekaServer就会保护服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。当网络故障恢复后,该Eureka Server节点会自动退出自我保护模式。
(3)在自我保护模式中,Eureka Server会保护服务注册表中的信息,不再注销任何服务实例。当它收到的心跳数重新恢复到阈值以上时,该Eureka Server节点就会自动退出自我保护模式。它的设计哲学就是宁可保留错误的服务注册信息,在不盲目注销任何可能健康的服务实例。一句话讲解:好死不如赖活着
转发:zk和eureka的区别(CAP原则)https://www.cnblogs.com/chihirotan/p/11366394.html
转发:https://blog.csdn.net/weixin_43470574/article/details/83830318