- 说说你的⼯作经历?
- 项⽬主要负责哪⼏个模块?
- 画出你项⽬的结构图
- Eureka是如何进⾏服务注册的?
a. 每30s发送⼼跳检测重新进⾏租约,如果客户端不能多次更新租约,
它将在90s内从服务器注册中⼼移除。
a. 注册信息和更新会被复制到其他Eureka 节点,来⾃任何区域的客户
端可以查找到注册中⼼信息,每30s发⽣⼀次复制来定位他们的服务,
并进⾏远程调⽤。
b. 客户端还可以缓存⼀些服务实例信息,所以即使Eureka全挂掉,客户
端也是可以定位到服务地址的。 - 如果服务宕机或者⽆法访问了,我还去请求该服务,Eureka会怎么处理?
会有什么现象?
Eureka服务注册中⼼的失效剔除与⾃我保护机
制:https://www.jianshu.com/p/6cf86e0392a3 - 谈谈Eureka的保护机制
Eureka Server的⾃我保护机制会检查最近15分钟内所有Eureka
Client正常⼼跳的占⽐,如果低于85%就会被触发。
我们如果在Eureka Server的管理界⾯发现如下的红⾊内容,就说明
已经触发了⾃我保护机制。
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING
INSTANCES ARE UP WHEN THEY’RE NOT. RENEWALS ARE LESSER THAN
THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED
JUST TO BE SAFE.
当触发⾃我保护机制后Eureka Server就会锁定服务列表,不让服务
列表内的服务过期,不过这样我们在访问服务时,得到的服务很有可能是已经失
效的实例,如果是这样我们就会⽆法访问到期望的资源,会导致服务调⽤失败,
所以这时我们就需要有对应的容错机制、熔断机制,我们在接下来的⽂章内会详
细讲解这块知识点。
我们的服务如果是采⽤的公⽹IP地址,出现⾃我保护机制的⼏率就会⼤
⼤增加,所以这时更要我们部署多个相同InstanId的服务或者建⽴⼀套完整的
熔断机制解决⽅案。
⾃我保护开关
如果在本地测试环境,建议关掉⾃我保护机制,这样⽅便我们进⾏测
试,也更准备的保证了服务实例的有效性!!!
关闭⾃我保护只需要修改application.yml配置⽂件内参
数eureka.server.enable-self-preservation将值设置为false即可。 - Ribbon的负载均衡是⾯向服务内部还是外部的?
外部,https://blog.csdn.net/u013087513/article/details/79775306 - Ribbon如何实现负载均衡的?
这篇讲的⾮常好:https://www.jianshu.com/p/e459f43ef96d - 如果没有Eureka,我能直接通过Ri
2019年oppo面试题(Java开发工程师)
最新推荐文章于 2024-04-24 09:21:15 发布