Java面试技巧合集,Redis如何实现高可扩展

前言

一般的小项目,比如几百人左右访问的项目,访问量几万的项目,如果想用缓存,单机实例完全够用。小黄图就是用的阿里云256MB配置的Redis缓存,日几千的访问量是妥妥够用的了。Redis号称可以支撑10w+qps,当然这也给机器配置有一定的关系,如果单实例满足不了需求,想追求更高的性能和稳定性,可以选择主从、哨兵已经更好的解决方案Redis-Cluster 集群。

image.png

一面:

先是问了问项目,然后就开始问一些问题

1、每个请求耗时100ms,机器的配置是4核8G,问要达到10000TPS需要多少台机器?

没答上来,问了问是IO密集型还是CPU密集型,然后面试官说我想得太复杂了

2、怎么实现网页的自动跳转

答301 302的Location字段,然后又问了我这两个有什么区别

3、有一个10G大小的文件,里面都是32位的无符号整数,但是内存大小只有1G,问如何找出里面重复的数字

一开始说用hash,先hash到小文件。面试官说有没有更简单的,答位图,又问你觉得位图会占用多大的内存空间。算了一会,答512M

然后就是算法题,一个Unix的路径,简化这个路径,Leetcode上有原题

一面大概36分钟

二面:

围绕项目问了很多问题,和我讨论了怎么保证双写的一致性、消息队列中消息积压了怎么办、为什么要用到分布式锁、ZK的分布式锁的使用流程、ZK的选主策略、同步策略然后又围绕Kafka问了一些问题。

1、Kafka怎么保证顺序消费?

2、Kafka的架构是什么样的?

3、Kafka可以保证一个主题所有的分区都顺序消费吗?

算法,给一个数n,求所有和等于这个数的连续子序列,比如15=1+2+3+4+5=4+5+6=8+7,所以输出3.

三面:

主要是围绕着基础的知识问了一些问题:

1、Java的GC

2、反射,反射是怎么实现的。

没看过是怎么实现的,现场猜想了一下,应该答错了

3、讲一下乐观锁和悲观锁

4、网络协议的分层,每一层是干嘛用的

5、DNS是哪一层的,域名解析的过程是什么样的?

6、进程间通信的方式,什么情况下需要进程间通信?

这个题答得也不太好,讲了管道、信号、共享内存区域

7、volatile关键字

8、Synchronized和Lock

这个地方我是想等他来问我底层的原理,所以说的时候没说完。不过说完他也没反馈,也许知道什么就应该全部说出来?

做一道算法题,序列化和反序列化二叉树

9、内核态和用户态介绍一下

最后面试官和我聊了聊平时是怎么学习的,最近学什么东西比较有心得,以后的职业规划是什么。

线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识

![]

点击领取2024完整开源项目《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

(https://upload-images.jianshu.io/upload_images/13465705-c4fd37110080306c?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

一线互联网P7面试集锦+各种大厂面试集锦

学习笔记以及面试真题解析

g-OV1ymONA-1709856504058)]

学习笔记以及面试真题解析

[外链图片转存中…(img-KWkQ9QD7-1709856504058)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 18
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值