题目目录

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分钟内所有EurekaClient正常心的占比,如果低于85%就会被触发。我们如果在Eureka Server的管理界面发现如下的红色内容,就说明已经触发了自我保护机制。EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMINGINSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THANTHRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIREDJUST 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,尝试半开,放入一部分流量请求进来,相当于对依赖服务进行次健康检查,如果恢复,熔断器关闭,随后完全恢复调用。如下图:

11.当服务无法访问时,是直接熔断还是降级?先降级,后熔断。

12.怎么样才会出现熔断?熔断就跟保险丝一样,当一个服务请求并发特别大,服务器已经招架不住了,调⽤错误率飙升,当错误率达到⼀定阈值后,就将这个服务熔断了。熔断之后,后续的请求就不会再请求服务器了,以减缓服务器的压力。

13.在Springcloud中,消费者调⽤提供者的流程是如何的?请画图springcloud的工作原理

springcloud由以下几个核心组件构成:

Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka

Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里

Ribbon:服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台

Feign:基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求

Hystrix:发起请求是通过Hystrix的线程池来走的,不同的服务⾛不同的线程池,实现了不同服务调⽤的隔离,避免了服务雪崩的问题Zuul:如果前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务

14.Redis的集群方式有哪些?主从、哨兵、redis-cluster:
https://uule.iteye.com/blog/2438778

15.如果你原来读取的Redis中的数据,它的数据的结构发生了变化,如何在不改变代码的情况下进行处理,使下游业务不受影响?

16.Redis的持久化方式有哪些?说说他们的具体实现、Redis有两种持久化的方式:快照(RDB文件)和追加式文件(AOF文件):

i.RDB持久化方式会在一个特定的间隔保存那个时间点的一个数据快照。ii.AOF持久化方式则会记录每一个服务器收到的写操作。在服务启动时,这些记录的操作会逐条执行从而重建出原来的数据。写操作命令记录的格式跟Redis协议⼀致,以追加的方式进行保存。iii.Redis的持久化是可以禁用的,就是说你可以让数据的⽣命周期只存在于服务器的运行时间里。iv.两种方式的持久化是可以同时存在的,但是当Redis重启时,AOF文件会被优先用于重建数据。

17.使用Redis的过程中有没有遇到什么问题?

1、缓存和数据库双写一致性问题解决方案前提是对数据有强一致性要求,不能放缓存;只能降低不一致发生的概率,无法完全避免;只能保证最终一致性。

1)采用正确的更新策略,先更新数据库,再删缓存

2)可能存在删除缓存失败的问题,提供一个补偿措施如利用消息队列。2、缓存雪崩解决方案(大并发项目,流量在几百万)-利用互斥锁:会使吞吐量下降-给缓存加失效时间:随机值,避免集体失效-双缓存3、缓存穿透解决方案(大并发项目,流量在几百万)-利用互斥锁-采用异步更新策略,无论Key是否取到值都直接返回-提供一个能迅速判断请求是否有效的拦截机制(布隆过滤器)4、缓存并发竞争解决方案-不要求顺序时,准备一个分布式锁,同时去抢锁,然后在set操作。-要求顺序时,在数据写入数据库时,需要保存一个时间戳。-利用队列,将set操作变成串行访问。

18.Redis的内存回收机制有哪些?

了解:
https://juejin.im/post/5d107ad851882576df7fba9e

19.Redis的过期策略有哪些?简单介绍下不同策略

定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。

2.惰性过期:只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存。

3.定期过期:每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key。该策略是前两者的一个折中方案。通过调整定时扫描的时间间隔和每次扫描的限定耗时,可以在不同情况下使得CPU和内存资源达到最优的平衡效果。(expires字典会保存所有设置了过期时间的key的过期时间数据,其中,key是指向键空间中的某个键的指针,value是该键的毫秒精度的UNIX时间戳表示的过期时间。键空间是指该Redis集群中保存的所有键。)

20.说说Redis的淘汰策略?淘汰的算法可以修改或者自己重写吗?

默认:noeviction

21.你们的项目中消息中间件用的是什么?

详见“面试题库/消息中间件”

22.你们的Rabbit集群是怎么部署的?

23.Rabbit集群之间的数据是如何同步的?同步方式还是异步⽅式?

24.一个队列中的数据你们是存放在一台机子上还是多台机子上?为什么?

25.RabbitMQ内部结构是怎么样的?请画出RabbitMQ的架构图RabbitMQ是一个高可用的消息中间件,支持多种协议和集群扩展。并且支持消息持久化和镜像队列,适用于对消息可靠性较高的场合,基本模型如下。
https://fanchao01.github.io/blog/2018/02/09/rabbitmq-arch/

2022深圳-OPPO-Java高级面试真题分享相关推荐

  1. 2022最全Java后端面试真题、两万字1000+道堪称史上最强的面试题不接受任何反驳

    对于生命垂危的病人来说,时刻就是宝贵的生命;对于做生意的人来说,时刻就是财富,有的人说时刻就像是从山坡上流下来的水,从何处吹来的风,走了就不再回来了;而对于正在工作的我们来说,时刻就是力量,时刻就是财 ...

  2. java匿名对象赋初值_不想进BAT的Java程序员不是好程序员,BAT后端Java岗面试真题分享

    一. JDK/JRE/JVM 三者之间的联系与区别 JDK:开发者提供的开发工具箱,是给程序开发者用的.它包括完整的JRE(Java Runtime Environment),Java运行环境,还包含 ...

  3. linux使用教程PDF,腾讯、阿里Java高级面试真题汇总

    一.前言 在这里我不得不感慨Spring的代码的完善与优秀,从之前看源码迷迷糊糊到现在基本了解Spring的部分源码后,愈来愈发现Spring开发者的思虑之周全! 之前说过学习源码的目的在哪?正如我特 ...

  4. 最新 2022百威英博AI面试真题题库

    [#AI面试# 2022百威英博AI面试真题题库 #快消面试# ] 百威2022的ai面试已经改成了9道中文行为面试题,难度题量都比较大.建议大家提前准备. 百威2022AI面试真题 面试形式:中文面 ...

  5. 2023字节、腾讯、阿里等6家大厂Java开发面试真题+高频面试题总结

    又是一年求职面试旺季,不管你是新进职场小白还是职场老鸟,这些关于java程序员面试应准备的东西你都应该知道. 面试前需要准备 1. Java 八股文:了解常考的题型和回答思路: 2. 算法:刷100- ...

  6. 【对号入座】15.2k-37.4k的Java岗面试真题,应届生秋招和老java跳槽面试都适用

    故事的开始 最近有很多人问,有什么方法能够快速提升自己,通过阿里.腾讯.字节跳动.京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,内容包 ...

  7. 百度统计 java 实现思路_2019社招阿里、腾讯、蚂蚁金服「四面」Java面试真题分享...

    在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度.阿里巴巴.腾讯.而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置. 能够进一线互联网公司,是大部分程序员奋斗的目标,有很 ...

  8. 字节跳动Java后端面试真题,看完你学会了吗,「附面试福利」

    前言; 之前有好多朋友给我留言说想去字节跳动,今天就给大家分享几道字节跳动的面试真题给大家,文末有福利哦. 一. 谈谈你对Java平台的理解? "Java 是解释执行",这句话正确 ...

  9. 2020社招阿里、腾讯、蚂蚁金服「四面」Java面试真题分享

    在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度.阿里巴巴.腾讯.而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置. 能够进一线互联网公司,是大部分程序员奋斗的目标,有很 ...

最新文章

  1. 网页中如何获取客户端系统已安装的所有字体?
  2. 数据结构的映像方法(关系的机内表示)
  3. python连接opencv库_python环境下安装opencv库的方法
  4. 经验 | 计算机专业科班出身如何提高自己编程能力?
  5. Python刷题之路,怎样做才能让技术突飞猛进
  6. HPUX分析Crash Dump_q4pxdb vmunix
  7. php 自动处理小图的代码,php对图像的各种处理函数代码小结
  8. 必看!程序员逃生指南!
  9. [代码片断]SQL中解析XML数据
  10. 5.1、按键SW1控制LED1亮灭
  11. [IOI2018]-day1 简要题解
  12. Jenkins构建从github上克隆时,报Host key verification failed.
  13. python1到100奇数和_python计算1~100的和,1~100奇数的和,1~100偶数的和,一条代码求1~100的和...
  14. Cut through switching
  15. 将数字0-9转为中文大写数字
  16. 迈阿密牛津计算机专业,2020年迈阿密大学牛津专业设置
  17. js 超简单 判断是否字符串是否为纯数字
  18. 怎么做HTML焦点图+实例练习
  19. 服务器型号E52680,八核心Intel Xeon E5-2680性能大爆光
  20. Docker之Swam

热门文章

  1. 教你怎样把一个价值0.5元苹果卖到100万元
  2. 中国工程承包行业运营状况及未来发展方向预测报告(2022-2027年)
  3. 打印机竖线不直_七夕小子_新浪博客
  4. 铜陵新松工业机器人项目_新松机器人智慧产业园项目启动
  5. css中 sans-serif,如何理解css字体font-family:serif、sans-serif、monospace
  6. 速翔头条系统-高仿今日头条源码|速翔头条源码|新闻源码|资讯源码|新闻资讯系统|头条系统|自媒体源码系统
  7. 讯飞语音测试软件,语音转文字软件哪个好用?讯飞听见一键转写更简单
  8. 旅游必备的十款热门APP
  9. 渐进式web应用程序_渐进式Web应用程序终极指南
  10. 雷军卸任小米有品公司董事,仍持股70%;马斯克决定不加入推特董事会;一加10 Pro内核源代码公布|极客头条