失效链接处理 |
OPPO Java高级笔试面试题 PDF 下载
本站整理下载:
提取码:dh9g
相关截图:
主要内容:
1. 说说你的⼯作经历?
2. 项⽬主要负责哪⼏个模块?
3. 画出你项⽬的结构图
4. Eureka是如何进⾏服务注册的?
a. 每30s发送⼼跳检测重新进⾏租约,如果客户端不能多次更新租约,
它将在90s内从服务器注册中⼼移除。
a. 注册信息和更新会被复制到其他Eureka 节点,来⾃任何区域的客户
端可以查找到注册中⼼信息,每30s发⽣⼀次复制来定位他们的服务,
并进⾏远程调⽤。
b. 客户端还可以缓存⼀些服务实例信息,所以即使Eureka全挂掉,客户
端也是可以定位到服务地址的。
5. 如果服务宕机或者⽆法访问了,我还去请求该服务,Eureka会怎么处理?
会有什么现象?
Eureka服务注册中⼼的失效剔除与⾃我保护机
制:https://www.jianshu.com/p/6cf86e0392a3
6. 谈谈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即可。
7. Ribbon的负载均衡是⾯向服务内部还是外部的?
外部,https://blog.csdn.net/u013087513/article/details/79775306
8. Ribbon如何实现负载均衡的?
这篇讲的⾮常好:https://www.jianshu.com/p/e459f43ef96d
9. 如果没有Eureka,我能直接通过Ribbon进⾏服务请求吗?
可以的,需要导⼊ eureka-client-cat
,https://blog.csdn.net/wangmx1993328/article/details/95513359
10. Hystrix如何实现熔断?
Hystrix在运⾏过程中会向每个commandKey对应的熔断器报告成功、失
败、超时和拒绝的状态,熔断器维护计算统计的数据,根据这些统计的信息来确
定熔断器是否打开。如果打开,后续的请求都会被截断。然后会隔⼀段时间默认
是5s,尝试半开,放⼊⼀部分流量请求进来,相当于对依赖服务进⾏⼀次健康检
查,如果恢复,熔断器关闭,随后完全恢复调⽤。如下图:
|