博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Eureka的自我保护模式
阅读量:7225 次
发布时间:2019-06-29

本文共 1022 字,大约阅读时间需要 3 分钟。

一 Eureka的自我保护模式

进入自我保护模式最直观的体现就是Eureka Server首页的警告,如下图:

 

 默认情况下,如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销该实例(默认90秒)。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,这就可能变得非常危险了----因为微服务本身是健康的,此时本不应该注销这个微服务。

  Eureka Server通过“自我保护模式”来解决这个问题----当Eureka Server节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式。一旦进入该模式,Eureka Server就会保护服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。当网络故障恢复后,该Eureka Server节点会自动退出自我保护模式。

 自我保护模式是一种对网络异常的安全保护措施。使用自我保护模式,而已让Eureka集群更加的健壮、稳定。

 

二 

 

在Spring Cloud中,可以使用eureka.server.enable-self-preservation=false来禁用自我保护模式

 

Eureka的健康检查

先看下图:

 

说明:在Status栏显示着UP,表示应用程序状态正常。其它取值DOWN、OUT_OF_SERVICE、UNKNOWN等,只有UP的微服务会被请求。

 

由于Eureka Server与Eureka Client之间使用心跳机制来确定Eureka Client的状态,默认情况下,服务器端与客户端的心跳保持正常,应用程序就会始终保持“UP”状态,所以微服务的UP并不能完全反应应用程序的状态。

 

Spring Boot Actuator提供了/health端点,该端点可展示应用程序的健康信息,只有将该端点中的健康状态传播到Eureka Server就可以了,实现这点很简单,只需为微服务配置如下内容:

#开启健康检查(需要spring-boot-starter-actuator依赖)eureka.client.healthcheck.enabled = true

如果需要更细粒度健康检查,可实现com.netflix.appinfo.HealthCheckHandler接口 。 EurekaHealthCheckHandler 已实现了该接口

 

转载地址:http://afkfm.baihongyu.com/

你可能感兴趣的文章
runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁
查看>>
回顾小程序2018年三足鼎立历程,2019年BAT火力全开
查看>>
原生Ajax
查看>>
LinkedIn 开源成功的秘密
查看>>
微软发布预览版SQL Server跨平台开发工具
查看>>
解读微软开源MMLSpark:统一的大规模机器学习生态系统
查看>>
中台之上(十三):探讨支持组装式开发的业务架构设计方法
查看>>
依赖类型语言Idris发布1.0版本
查看>>
Bowery为什么从Node.js转向 Go
查看>>
Java 20年:转角遇到Go
查看>>
JavaScript到底是面向对象还是基于对象?
查看>>
java第三方包学习之lombok
查看>>
《OpenStack 实战》内容概览与作者采访
查看>>
微软宣布公开预览其内容分发网络
查看>>
MongoDB 是如何鼓励和激励开发者社区的
查看>>
太多脚本将会毁掉持续交付
查看>>
如何在国内构建一个硅谷级的高效技术团队?
查看>>
QCon旧金山2016大会,议题发布及研讨会一瞥
查看>>
苏宁:我们开发百度小程序遇到的那些“坑”
查看>>
聊天宝彻底凉了,遭罗永浩抛弃,团队就地解散
查看>>