携程酒店住宿订单部门日常一面

 感觉部门蛮核心的,做携程酒店订单流转处理的。#牛客AI配图神器#
 ○ 请先做一个自我介绍。  
  ○ 你在快手电商平台做的查询优化具体解决了什么问题?
  ○ 本地缓存和 Redis 缓存的容量是如何确定的?  
  ○ 本地缓存设置 1 万条数据容量的依据是什么?  (少了命中率太低频繁淘汰,多了占内存容易gc,且大概热点 数据就只有1w左右)
  ○ 如何保证缓存数据的新鲜度(更新机制)?  
  ○ 如果缓存与数据库对账失败,如何处理?  (我说定时任务三天全量对账一次)
  ○ 极端情况下,如果全量同步也失败你怎么发现数据有问题?(告警啊,手动修复?)
  ○ 后续再全量同步时,如何保证全量刷数据是没有遗漏的?(不知道咋办了)
  ○ Redis 集群的哈希槽(Hash Slot)设计目的是什么?  
  ○ 为什么哈希槽数量是 16384 个,而不是更少?
  ○ InnoDB 如何解决幻读问题?  
  ○ 单表合理数据量的评估标准是什么?实习公司为何按 5000 万分表?这个5000w出于什么来考虑?
  ○ 为什么选择 CountDownLatch 而不是 CompletableFuture?  
  ○ 如果核心线程数已满但未达最大线程数,新任务如何处理?  
  ○ 线程池线程数量如何设置的?线程池的任务队列长度应该如何设置?(我说考虑QPS,avgcost,还有cpu核数,任务队列要考虑上游超时时间>=排队时间+任务平均最大执行时间)
  ○ 面试官追问:cpu执行和io这种实际比较难以测量,而且会动态变化,且随着业务迭代avgcost也会变化,那核心线程数有没有比较通用的设置?(我说了美团推荐的一个公式)
  ○ 你这个做的实习项目是怎么做的,能满足什么业务?
  ○ 说你实习比较困难的点?(这个真不知道咋说,感觉我觉得困难的面试官觉得一般)
  ○ 如何实现业务方工具与大模型能力的解耦(可配置化)?  
  ○ 是否可以不依赖开发经验,通过标准化流程自动化映射工具与模型?
  ○ 反问:多思考极端情况+多去理解业务的架构(面试官人真好说这个也很困难)
就35min,无手撕,全拷打实习,就一面已约hr面
全部评论
大厂实习过的就是牛逼啊
1 回复 分享
发布于 03-14 12:23 上海
懒师傅
点赞 回复 分享
发布于 03-15 20:51 陕西
佬打算去吗
点赞 回复 分享
发布于 03-13 21:27 湖北
直接oc?太猛了
点赞 回复 分享
发布于 03-13 11:27 江苏

相关推荐

问题1:为什么会使用分库分表,到达了什么样的数据级别才会去加设计,是否对数据量有一个统计我的理解:看星哥之前写过 单表行数超 500 万行或者单表容量超过 2GB,推荐分库分表,但是面试的过程中怕被问自己写的项目会有这么大的数据量吗不要这么硬背,具体情况具体分析,有的表字段少,经常是条件等值查询,这样加个索引,一个亿也不用分表,有的字段多,还是范围查询,可能5000万就得分表,面试官问你你说是自己在学习分库分表应用到项目中,自己造了几千万的数据量问题2:基因法需要分表的一个数量和确定的一个东西(我的理解是分表的依据,例如大麦中是订单编号和用户id),但是正常的生产环境中是可能动态改变的,比如说需要动态扩容的话,怎么解决呢(例如当前有4个分表,但是现在需要扩充到8个分表),是使用双写吗?这个在扩容前就要考虑好能维持多少年内不需要再扩容。转转架构师在分库分表前,通过之前记录的数据增长量,做了256张表,能在7年内不需要再扩容,如果需要扩容的话,可以使用双写,新扩容表写的过程中,用新的分库分表算法问题3:如果在防止超卖的过程中,Redis不可用了,怎么解决我的理解:使用Redis集群和主从复制吗?因为Redis宕机的话数据库的数据也不能保证是最新的版本,所以得尽量保证Redis不宕机?肯定要使用redis集群模式,但可能会有主从延迟,导致从节点数据不是最新的,但关系不大。可以在用户生成订单后,修改数据库的座位和库存,然后用户支付后,再改数据库的座位和库存,每一步都做好验证。这样从节点的数据问题会降到最低。问题4:如果在当前的幂等验证逻辑中,有一个消息所对应的幂等标识符是不存在的,按照现有的逻辑是可以执行的,但是幂等验证之后的业务系统异常了,这个时候应该怎么处理呢(即通过了幂等的验证,但是后面的服务down掉了,比如说下游抛了一个异常出来)【没太明白应该回答什么,是指需要将幂等标识符重新进行设置吗】异常了就异常了呗,把这个请求的标识从redis中删除了,就像分布式锁时,业务异常也要执行解锁一样,让下一个请求进来正常执行,然后设置好标识位问题5:本地缓存为什么使用Caffine呢,为啥不用Guava因为caffine的性能要远高于Guava,没有其他复杂原因我的理解:查了下Caffine就是Guava改进而来的,可以这么说吗- Caffine在读写操作方面的性能更高,是基于异步的操作,将淘汰过期操作与读写进行分离- Caffine采用了一种结合 LRU、LFU的算法W-TinyLFU+,具有高命中率,低内存占用的特点
查看5道真题和解析
点赞 评论 收藏
分享
评论
7
43
分享

创作者周榜

更多
牛客网
牛客企业服务