当前位置:   article > 正文

京东数据中台面试_数据中台 开发面试题

数据中台 开发面试题

京东:

一面:

1、springMVC执行过程
在这里插入图片描述

2、线程池执行流程

3、redis分布式锁

4、redis热key会产生什么问题,怎么解决,大量请求访问redis的一个分片,redis崩溃,怎么解决

如何发现热key :
1、预估热key,比如秒杀的商品、火爆的新闻等
2、在客户端进行统计,实现简单,加一行代码即可
3、如果是Proxy,比如Codis,可以在Proxy端收集
4、利用Redis自带的命令,monitor、hotkeys。但是执行缓慢(不要用)
5、利用基于大数据领域的流式计算技术来进行实时数据访问次数的统计,比如 Storm、Spark Streaming、Flink,这些技术都是可以的。发现热点数据后可以写到zookeeper中

如何处理热Key:
1、变分布式缓存为本地缓存
发现热key后,把缓存数据取出后,直接加载到本地缓存中。可以采用Ehcache、Guava Cache都可以,这样系统在访问热key数据时就可以直接访问自己的缓存了。(数据不要求时时一致)
2、在每个Redis主节点上备份热key数据,这样在读取时可以采用随机读取的方式,将访问压力负载到每个Redis上。
3、利用对热点数据访问的限流熔断保护措施
每个系统实例每秒最多请求缓存集群读操作不超过 400 次,一超过就可以熔断掉,不让请求缓存集群,直接返回一个空白信息,然后用户稍后会自行再次重新刷新页面之类的。(首页不行,系统友好性差)
通过系统层自己直接加限流熔断保护措施,可以很好的保护后面的缓存集群。

5、springCloud 微服务间调用,TCP,HTTP区别

6、@Transactional 默认回滚什么异常,什么情况下会失效

默认RuntimeException异常才会回滚
注解加在private方法上会失效,或在对象内部调用本类方法时,被调用的方法上加的事务会失效

7、mysql 存储引擎数据结构

B+树

8、sql慢查询优化

索引优化,避免全表扫描

9、mysql 主从同步

(1)Master服务器对数据库更改操作记录在Binlog中,BinlogDump Thread接到写入请求后,读取Binlog信息推送给Slave的I/O Thread。
(2)Slave的I/O Thread将读取到的Binlog信息写入到本地Relay Log中。
(3)Slave的SQL Thread检测到Relay Log的变更请求,解析relay log中内容在从库上执行。在这里插入图片描述
上图是异步复制,存在问题
1-主库宕机后,数据可能丢失.
2-从库只有一个SQL Thread,主库写压力大,复制很可能延时
解决方法:
1–半同步复制—解决数据丢失的问题
在这里插入图片描述

2–并行复制----解决从库复制延迟的问题
在从库中有两个线程IO Thread和SQL Thread,都是单线程模式工作,因此有了延迟问题,我们可以采用多线程机制来加强,减少从库复制延迟。(IO Thread多线程意义不大,主要指的是SQL Thread多线程)

10、mybatis mapper中的方法怎么定位到sql语句

11,hashMap扩容为什么是2倍

hashMap的容量是2的幂次
key位置是通过tab[i = (n - 1) & hash]计算出来的
这里的n是HashMap的容量,因为n永远是2的次幂,所以n - 1通过二进制表示,永远都是末尾连续1的形式表示(如00001111、00000011),当(n - 1) 和hash做与运算时,会保留hash中后x位的1
例如00001111 & 10000011 = 00000011
这样做的好处在于:

1–&运算速度快,至少比%取模运算快

2–能保证索引值肯定在HashMap的容量大小范围内

3-- (n - 1) & hash的值是均匀分布的,可以减少hash冲突

12,栈内存溢出的原因以及解决方案

栈内存异常StackOverFlowError
产生原因
1—递归调用次数太多
2—方法调用嵌套太多
3—局部变量是否太多
4—List Map 数组数据是否过
5—是否有大量循环或死循环

解决方案:
1----使用DDMS工具进行查找大概出现栈溢出的位置
2----检查代码,是否递归次数太多,是否出现死循环,是否方法调用’层’太多 栈太深了.
3----如果带麻烦没有问题,考虑是否栈空间设置得太小了,适当调大
使用-Xss参数设置每个线程得栈大小

13、OOM问题怎么定位

https://www.jb51.net/article/206585.htm

14、项目在开发,测试,上线后怎么保证稳定性,安全性

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/482471
推荐阅读
相关标签
  

闽ICP备14008679号