滴滴一二三面
一面
纯八股:
你对Java的并发编程了解的多吗?
executors框架的线程池有哪些?
SpringBootApplication注解
自动配置是怎么实现的?
配置的加载顺序
springboot里的事务是怎么实现的?
MySQL的锁机制
临键锁是为了解决什么问题的?
脏读、不可重复读、幻读
电商系统怎么保证库存扣减和创建订单的一致性?--redis+kafka(保证消息不丢失+本地事务表)+定时任务兜底
你这种方案会出现超卖吗?--我说不会啊哈哈哈哈
分布式事务了解?--我说了Seata AT,面试官问这种合适电商这种场景吗?
redis字符串怎么实现的
手撕:零钱兑换2--面试官提问但是我完全听不清他问了什么,光听到不同顺序算一种组合什么的
整场面试其实回答的特别不好,主要是因为实在听不清,刚开始的时候我说过几次听不清,然后面试官重复一次,我硬着头皮问是什么什么吗?然后就开始说,后面我就直接根据听到 一星半点回答了,没想到还进二面了
二面
项目+扩展:
PostConstruct 注解和那个 ConcurrentHashMap, 实现了各平台实例的注册,为什么要使用ConcurrentHashMap?
能讲讲 JWT 是什么吗?为什么要用 JWT?
根据商品id模糊查询订单表使用了小表串联大表,如果大表的数量是一个亿,怎么优化?也考虑精确查询--1.模糊匹配的话使用ES;2.精确查询的话,订单表是必须要查的,所以:建立索引;根据商品id哈希(这里只是考虑这个场景,其实按照商品id不太常见),水平分表;3.缓存
比如说我订单按你说的就是按商品 ID 分表了是吧?那可能我有其他需求,是想通过用户的维度,用户 ID 的维度去查订单。--看哪种更高频,对于相对不那么高频的,使用映射冗余表/ES
kafka+本地事务表这个怎么做的?
这块是怎么实现幂等的?--通常幂等如何保证,这里是业务上做幂等(其实这里不需要做幂等)
Kafka 会丢消息吗?
如果用户在在那个登录之前就已经下过很多单,那你的任务在执行的时候可能会耗时很长,这种你觉得怎么优化?--异步;根据用户id分表;线程池并行(感觉并行插入数据库的话锁竞争比较大,这个好像不太合适);分批,避免长事务
批量线索导入线程池怎么设置?--io密集,。。。
nacos 和 refreshscope 去做这种动态的配置的热更新,为什么选这个 nacos?--项目已经配置好了哈哈哈哈
有了解其他方案吗?--SPI机制
手撕:读写锁(不是hot100的题都克我,我菜死了)
三面
实习的基本情况:
实习的公司主要是做什么的?
实习时候主要是一个什么样的角色啊?--我想了一会,还没回答,继续问其他问题了哈哈哈
部门多少人啊
整个系统主要面临的XX(一个英文单词,实在没听清)是什么?--没听清
主要面临的那个用户是谁?--哈哈哈哈
你自己做过发版吗?-没有
相对来说项目的难度或挑战对你来说比较大?--大概说了一下
线上是有几台服务器?--线上服务器的话,生产环境应该是一台服务器,但是应该是分了三个节点。
一台服务器三个节点是什么意思?
参考回答:线上环境目前的物理服务器是1台,配置为16核CPU。为了支持k8s集群的高可用调度,我们在这一台服务器上逻辑划分了3个节点,1Master+2worker。K8s 把不同的服务(微服务)调度到不同的节点上
自己部署的还是部署到阿里云?--我感觉是部署到阿里云,但是后面的真不了解了,就说不知道。。
你们现在三个节点你们日常部署是怎么部署和发布的?--不知道
上线的时候怎么观察?--发请求测试+看日志
你们怎么样去登录线上的机器去看日志呢?
toB的这一块,主要的挑战在哪?
可以举个例子
项目:
做过支付相关的吗?如果微信回调不到位??--感觉想问状态流转和库存怎么加回去的事情,没说清楚
又问到小表驱动大表了,这里我觉得虽然这个功能很好实现,但是真的基本每次面试都被问到一些数据量特别大或者一些其他的扩展问题:小表查出的ID特别多,如何优化?--1.如果是因为模糊查的这个id太短了(比如商品id是11位,我查1,那肯定会出现很多),业务上做一些限制;2.如果是因为数据量特别大的话,可以考虑使用ES全文搜索
场景题:
假设现在要你生成一个全值唯一的订单 ID。 你会这么来考虑来生成呢?--雪花算法:时间戳(毫秒级)+机器 ID(区分服务器节点)+序列号(同一毫秒内自增)
怎么保证一台机器上序列号是递增的呢?--原子类
原子类是怎么保证不同的线程之间的序列号不会重复呢?--CAS
抖音视频发表评论如何设计?第一个是说视频下要能看到评论,第二个用户个人想知道自己发过哪些评论。--评论主表,给视频id建立索引,根据视频id分表;冗余表存用户id-->视频id+评论id-->评论主表
了解哪些 RPC 协议?举个例子?
一般注册中心是用来解决什么问题的?
比如Dubbo 协议,请求过来之后,下游两台机器,怎么决定哪台机器?负载均衡这一层是谁来实现的?--调用方实现的
打开网页的全流程
DNS 拿到 IP 了,访问到服务端了,谁来决策是说打到哪个机器?--用户 DNS 解析,拿到的不是业务服务器 IP,而是负载均衡器的 IP,请求先到负载均衡器,由负载均衡器,根据策略选择一台后端健康的业务机器
负载均衡器是??--一台独立的网关 / 代理服务器,最常用的就是 Nginx,它的作用:对外只有一个统一入口,接收所有用户请求,它后面挂着我们多台业务服务器,它按照轮询、随机这些策略,把请求分发给健康的机器
Nginx 一般也会是有很多台机器,选的是哪一台 Nginx 机器呢?--DNS 负载均衡
自己定位到线上问题吗?--压测发现OOM,OOM时刻的堆转储文件->大对象->代码逻辑
比如登录失败了,怎么排查?--根据前端提示是业务异常还是服务异常,根据traceId查日志,看异常堆栈信息,如果是业务异常,尝试复现,debug一下
TraceID是?
TraceID怎么生成的?
项目里复盘一下觉得有改进空间的?--我巴巴说了半天,最后我们一致认为还是改进之前更好哈哈哈哈哈服了,最后我说没有
两个不同进程里面的同样的一个地址指针,访问的内容会是一样的吗?--进程之间是相互独立、内存隔离的,每个进程都有独立的虚拟地址空间。两个进程里一模一样的内存地址,只是虚拟地址,不是物理地址。操作系统会通过 MMU 映射,把相同的虚拟地址,映射到完全不同的物理内存。
有什么场景它还会存在是一样的呢?--共享内存,父子进程
反问:在面试候选人的时候,会比较注重哪些能力,或者是哪些特质?--计算机方面基础是否是扎实?对一个问题的细致的思考能力,尤其是没准备过的(哈哈哈哈哈点我呢)
复盘一下才发现三面竟然问了这么多问题,场景题很多我都回答的乱七八糟,也可能是面试有点紧张胡言乱语了,面试完其实自己好好想一想感觉能想的比面试的时候好很多
非常期待三面能通过,但是又觉得自己面的实在很菜😭
-----
终于接到hr电话了,虽然是大白菜,但是也满足了!感谢滴!!
#滴滴春招#
纯八股:
你对Java的并发编程了解的多吗?
executors框架的线程池有哪些?
SpringBootApplication注解
自动配置是怎么实现的?
配置的加载顺序
springboot里的事务是怎么实现的?
MySQL的锁机制
临键锁是为了解决什么问题的?
脏读、不可重复读、幻读
电商系统怎么保证库存扣减和创建订单的一致性?--redis+kafka(保证消息不丢失+本地事务表)+定时任务兜底
你这种方案会出现超卖吗?--我说不会啊哈哈哈哈
分布式事务了解?--我说了Seata AT,面试官问这种合适电商这种场景吗?
redis字符串怎么实现的
手撕:零钱兑换2--面试官提问但是我完全听不清他问了什么,光听到不同顺序算一种组合什么的
整场面试其实回答的特别不好,主要是因为实在听不清,刚开始的时候我说过几次听不清,然后面试官重复一次,我硬着头皮问是什么什么吗?然后就开始说,后面我就直接根据听到 一星半点回答了,没想到还进二面了
二面
项目+扩展:
PostConstruct 注解和那个 ConcurrentHashMap, 实现了各平台实例的注册,为什么要使用ConcurrentHashMap?
能讲讲 JWT 是什么吗?为什么要用 JWT?
根据商品id模糊查询订单表使用了小表串联大表,如果大表的数量是一个亿,怎么优化?也考虑精确查询--1.模糊匹配的话使用ES;2.精确查询的话,订单表是必须要查的,所以:建立索引;根据商品id哈希(这里只是考虑这个场景,其实按照商品id不太常见),水平分表;3.缓存
比如说我订单按你说的就是按商品 ID 分表了是吧?那可能我有其他需求,是想通过用户的维度,用户 ID 的维度去查订单。--看哪种更高频,对于相对不那么高频的,使用映射冗余表/ES
kafka+本地事务表这个怎么做的?
这块是怎么实现幂等的?--通常幂等如何保证,这里是业务上做幂等(其实这里不需要做幂等)
Kafka 会丢消息吗?
如果用户在在那个登录之前就已经下过很多单,那你的任务在执行的时候可能会耗时很长,这种你觉得怎么优化?--异步;根据用户id分表;线程池并行(感觉并行插入数据库的话锁竞争比较大,这个好像不太合适);分批,避免长事务
批量线索导入线程池怎么设置?--io密集,。。。
nacos 和 refreshscope 去做这种动态的配置的热更新,为什么选这个 nacos?--项目已经配置好了哈哈哈哈
有了解其他方案吗?--SPI机制
手撕:读写锁(不是hot100的题都克我,我菜死了)
三面
实习的基本情况:
实习的公司主要是做什么的?
实习时候主要是一个什么样的角色啊?--我想了一会,还没回答,继续问其他问题了哈哈哈
部门多少人啊
整个系统主要面临的XX(一个英文单词,实在没听清)是什么?--没听清
主要面临的那个用户是谁?--哈哈哈哈
你自己做过发版吗?-没有
相对来说项目的难度或挑战对你来说比较大?--大概说了一下
线上是有几台服务器?--线上服务器的话,生产环境应该是一台服务器,但是应该是分了三个节点。
一台服务器三个节点是什么意思?
参考回答:线上环境目前的物理服务器是1台,配置为16核CPU。为了支持k8s集群的高可用调度,我们在这一台服务器上逻辑划分了3个节点,1Master+2worker。K8s 把不同的服务(微服务)调度到不同的节点上
自己部署的还是部署到阿里云?--我感觉是部署到阿里云,但是后面的真不了解了,就说不知道。。
你们现在三个节点你们日常部署是怎么部署和发布的?--不知道
上线的时候怎么观察?--发请求测试+看日志
你们怎么样去登录线上的机器去看日志呢?
toB的这一块,主要的挑战在哪?
可以举个例子
项目:
做过支付相关的吗?如果微信回调不到位??--感觉想问状态流转和库存怎么加回去的事情,没说清楚
又问到小表驱动大表了,这里我觉得虽然这个功能很好实现,但是真的基本每次面试都被问到一些数据量特别大或者一些其他的扩展问题:小表查出的ID特别多,如何优化?--1.如果是因为模糊查的这个id太短了(比如商品id是11位,我查1,那肯定会出现很多),业务上做一些限制;2.如果是因为数据量特别大的话,可以考虑使用ES全文搜索
场景题:
假设现在要你生成一个全值唯一的订单 ID。 你会这么来考虑来生成呢?--雪花算法:时间戳(毫秒级)+机器 ID(区分服务器节点)+序列号(同一毫秒内自增)
怎么保证一台机器上序列号是递增的呢?--原子类
原子类是怎么保证不同的线程之间的序列号不会重复呢?--CAS
抖音视频发表评论如何设计?第一个是说视频下要能看到评论,第二个用户个人想知道自己发过哪些评论。--评论主表,给视频id建立索引,根据视频id分表;冗余表存用户id-->视频id+评论id-->评论主表
了解哪些 RPC 协议?举个例子?
一般注册中心是用来解决什么问题的?
比如Dubbo 协议,请求过来之后,下游两台机器,怎么决定哪台机器?负载均衡这一层是谁来实现的?--调用方实现的
打开网页的全流程
DNS 拿到 IP 了,访问到服务端了,谁来决策是说打到哪个机器?--用户 DNS 解析,拿到的不是业务服务器 IP,而是负载均衡器的 IP,请求先到负载均衡器,由负载均衡器,根据策略选择一台后端健康的业务机器
负载均衡器是??--一台独立的网关 / 代理服务器,最常用的就是 Nginx,它的作用:对外只有一个统一入口,接收所有用户请求,它后面挂着我们多台业务服务器,它按照轮询、随机这些策略,把请求分发给健康的机器
Nginx 一般也会是有很多台机器,选的是哪一台 Nginx 机器呢?--DNS 负载均衡
自己定位到线上问题吗?--压测发现OOM,OOM时刻的堆转储文件->大对象->代码逻辑
比如登录失败了,怎么排查?--根据前端提示是业务异常还是服务异常,根据traceId查日志,看异常堆栈信息,如果是业务异常,尝试复现,debug一下
TraceID是?
TraceID怎么生成的?
项目里复盘一下觉得有改进空间的?--我巴巴说了半天,最后我们一致认为还是改进之前更好哈哈哈哈哈服了,最后我说没有
两个不同进程里面的同样的一个地址指针,访问的内容会是一样的吗?--进程之间是相互独立、内存隔离的,每个进程都有独立的虚拟地址空间。两个进程里一模一样的内存地址,只是虚拟地址,不是物理地址。操作系统会通过 MMU 映射,把相同的虚拟地址,映射到完全不同的物理内存。
有什么场景它还会存在是一样的呢?--共享内存,父子进程
反问:在面试候选人的时候,会比较注重哪些能力,或者是哪些特质?--计算机方面基础是否是扎实?对一个问题的细致的思考能力,尤其是没准备过的(哈哈哈哈哈点我呢)
复盘一下才发现三面竟然问了这么多问题,场景题很多我都回答的乱七八糟,也可能是面试有点紧张胡言乱语了,面试完其实自己好好想一想感觉能想的比面试的时候好很多
非常期待三面能通过,但是又觉得自己面的实在很菜😭
-----
终于接到hr电话了,虽然是大白菜,但是也满足了!感谢滴!!
#滴滴春招#
全部评论
佬,滴滴春招的白菜是多少啊?可以说一下不
我去大佬
你这太难了
佬是哪个部门的呀?
你好请问是当天面完当天谈薪吗?中间隔了多久呢
请问是一天面完吗?
相关推荐
点赞 评论 收藏
分享
查看10道真题和解析