阿里菜鸟网络Java岗4面面经:redis+单点登录+秒杀设计+中间件
我在上家公司待了整整三年,同事都挺好的,其实多少是舍不得团队。但因为公司属于传统企业,技术上并没有太大挑战,个人也逐渐遇到了职业瓶颈,我也渐渐体会到了温水煮青蛙的感觉,于是决定换个环境。
菜鸟网络一面:
聊了聊最近的项目,面试官以此为切入点,问了一下相关的知识
- http协议转dubbo协议怎么做的
- dubbo 的架构设计说一下
- mq通知时,消费者没消费到怎么办
- redis是单线程了吗?有什么好处
- 一般设置过期时间吗,业务场景有哪些,过期策略有哪些
- redis持久化了解不你们线上怎么用的
- 你们线上为什么这么用?只用AOF行不行
- 你有什么想问的?
一面大概用了半个小时,整体没有太大难度,更多是聊了一 -些项目.上的东西,做了一个初步了解。
菜鸟网络二面:
二面问的技术面比较广- ,聊了最近做的项目,讲了下项目中用到的单点登录的流程
接着就是java基础:
- 抽象类和接口你倾向用哪个?什么场景下用抽象类
- 如何更好的实现-个单例
- synchronized 和lock区别
- 公平锁和非公平锁
- 怎么实现自定注解
- 类加载机制
- 如何实现自己的classloader
- 如何动态加载类
- 如何触发full gc
- 用jvm命令如何触发
最后聊了一些开放性的问题
- 了解过netty吗
- 微服务了解过吗, Service Mesh呢
- 五亿数据,找出数量top100
- 10G数据,在内存小于10G如何分片
- 分片处理完如何汇总
- 分布在多个节点上如何汇总
- 哈希取模如何哈希?哈希冲突怎么办?能完全解决哈希冲突吗
- 数据库乐观锁和悲观锁
- 秒杀系统如何设计?
- redis分布式锁如何玩?超时时间如何设置
- zk的监听原理,你来实现你怎么做
- 主动推送怎么实现
整个面试聊下来,感觉还算不错,基本都回答出来了。
菜鸟网络三面
大概又过来一周, hr通知要到现场面
三面的形式完全出乎意料,来了两个面试官,整个面试过程都让我在黑板上画图讲解,他们会不间断的提问并做记录。
画项目的架构图,面试官会指出我项目中存在的一些问题问我如何解决,然后穿插着对项目中用到的一些技术进行提问!
- 消息如何保证一定被消费,如何没有消费到怎么办
- Redis怎么保证不丢数据,能不能保证严格意义的一定不会丢
- Redis集群, 生产环境Redis如何做数据迁移
- 一致性hash算法
- 数据库是怎么保证一定不会丢失数据的
- 浏览器敲入一个域名,尽可能详情的说下接下来网络协议层面发生了什么
- 了解过哪些锁, volatile 说下
三面持续了大概一个小时,面的不太好,主要是网络协议那一块,我回答的太烂了
菜鸟网络四面
四面是一个非常平易近人的大叔,应该是Team Leader整个过程没有聊技术细节,主要聊了一些技术的
方向,业务的理解,过往的经历。 整个过程还是聊的很愉快的。
复盘
整个面试过程问的知识点并不算难,也没有很偏的题,很多都是开放性的问题。例如redis在生产环境做数据迁移, 一个只看过几篇博客的人和一个确实亲身经历过这种场景的人,回答的绝对有差别,而正是这种问题,才能看出来差距。
面试之前也需要做很多的准备,我这边再去菜鸟网络面试之前也准备了很多的面面试资料与文档等等。可以免费的送给这篇文章的读者朋友们!
文末留言+转发关注后私信作者【面试】即可获取到这些面试文档!
上面所有的文档获取方式:
文末留言+转发关注后私信作者【面试】即可获取到这些面试文档!