美团后端一面凉经

更新一下,面试完第二天一早就进池子了表现的实在不咋样,问到后面都开摆了hhh

------------------------------------

面试官人还是很好的,很耐心,一开始一上来就先介绍了一下他们部门的情况

上来第一个问题是过滤器和拦截器的区别是啥?执行顺序是啥?以及实现原理的区别?

然后又大概问了springsecurity是基于过滤器还是拦截器(哎,血的教训。本身就没怎么了解过springsecurity结果硬着头皮写上去,一问直接穿帮)

然后还问了springsecurity有什么过滤器

springboot如何自定义一个starter?比方说像MySQLstarter之类的

Metainfo的配置以及用来做什么的

starter的设计模式有哪些?

然后就是认证和鉴权的区别是什么?

接下来就是springboot模块:

第一个是为什么开发者要自创线程池而不是直接用springboot的线程池??

以及自建线程池有哪些指标需要去监控的?

redis模块:

第一个是集群相对于单机来说,有什么不同点

集群是如何进行同步数据的

集群模式是否容易丢失数据?以及如何解决丢失数据的情况?

rdb和aof在使用的时候应该怎么选

还有一个问题是,缓存穿透如果用空值法的话,如何避免大面积的内存被白白占用?

redisson相比于setnx灵活在哪?

采用延迟双删的情况下,如果MySQL数据库操作失败了怎么办?

redis刷新token是如何保证用户无感的

接下来是mybatis的:

mybatisplus和mybatis的区别

然后先问我有没用过jpa,我说没有

然后说mybatisplus用到了很多queryweb?(这个也没准备好,不太会,甚至不知道说的是什么

最后一个是mybatisplus如何实现分类的

接下来是sql语句优化:

多表连接怎么优化

多变连接的情况下,如果要分页查询该怎么改造?

多表连接如何创建索引?联合索引是作用在哪里?

然后就是join from groupby order的执行顺序

MySQL内部如何提高扫描效率?(然后补充说有什么优化器)

然后又回到了redis:

点赞排行如何实现?用zset的话是不是只能存储短期的数据?那如果一周之后没了该怎么办?要如何刷新?

最后问了个简单的,如何实现乐观锁

最后手撕是最长不重复子串

总结就是,传统八股题问的很少,场景题贼多,深一点的底层题还需要学下次再战
全部评论
因为是golang开发 刷一下我会的 认证确认用户是谁的过程,验证用户的身份。例如用户名密码登录、手机验证码等。 鉴权确定用户能做什么的过程,验证用户是否有权限执行特定操作。例如普通用户不能访问管理员页面。 集群相对于单机的不同点:易于扩展,高性能,高可用性,但是需要额外维护成本 集群数据同步方式:主从同步,增量同步,全量同步,异步复制 同步的时候有一个replication buffer缓冲区,会写入同步期间新增的数据,同步完rdb之后再同步这个命令,然后重放一次 集群数据丢失及解决方案: 集群模式可能丢失数据,主要原因是异步复制。解决方法:开启持久化(RDB/AOF) 调整min-slaves-to-write和min-slaves-max-lag参数(拒绝写入 RDB和AOF选择: * RDB:适合数据备份,恢复速度快,对性能影响小,但可能丢失最后一次快照后的数据 * AOF:数据安全性高,支持秒级持久化,但文件较大,恢复速度慢 * 建议同时使用:RDB做冷备,AOF做热备,利用各自优势 缓存穿透空值法内存占用问题: 1. 空值设置较短的TTL 2. 布隆过滤器 3. 后台任务定期检查和清理空值 Redisson相比setnx的灵活性: 1. 同一线程可多次获取锁 2. 自动续期 3. 锁超时 4. 分布式支持 延迟双删MySQL操作失败 不是很懂,这个失败了数据仍然是一致的吧,只是会有缓存击穿分险,正常报错响应客户端应该就ok
19 回复 分享
发布于 03-24 20:40 浙江
续上一条 Redis刷新token保证用户无感: 1. 使用access_token和refresh_token 2. 在access_token即将过期前自动刷新 3. 用户活跃时延长token有效期 4. 客户端在后台异步刷新token 5. token过期后短时间内仍可使用,同时刷新 点赞排行实现及数据持久化: 1. 使用ZSET存储,score为点赞数 2. 定期将热门数据持久化到MySQL 3. 热数据保存在Redis,冷数据存入MySQL 4. 设置定时任务每天/周从MySQL加载基础数据到Redis 5. 只更新有变化的数据,而非全量刷新 乐观锁实现: 1. 表中增加version字段,更新时检查版本 2. 条件更新 UPDATE table SET data=?, version=version+1 WHERE id=? AND version=? SQL优化问题 多表连接优化: 1. 减少连接表数量 2. 索引优化 3. 小表驱动大表 4. 尽量使用内连接而非外连接 5. 将过滤条件尽量下推到基表 6. 避免笛卡尔积 多表连接分页查询优化: 1. 先获取分页ID,再关联查询详细数据 2. 先对主表分页,再与其他表连接 3. 尽量使用索引覆盖避免回表 4. 将WHERE条件提前执行 5. 使用临时表存储中间结果 多表连接索引创建及联合索引作用: 1. 在所有JOIN条件字段上创建索引 2. WHERE条件字段创建索引 3. ORDER BY字段创建索引 4. 联合索引作用最左前缀匹配 索引覆盖 减少回表次数 提高连接效率 SQL执行顺序: FROM > JOIN > WHERE > GROUP BY > HAVING > SELECT > DISTINCT > ORDER BY > LIMIT MySQL提高扫描效率的方法: 1. B+树索引减少磁盘IO次数 2. 根据成本选择最优执行计划 3. InnoDB buffer pool缓存热数据 4. 提前读取可能需要的数据页
12 回复 分享
发布于 03-24 20:41 浙江
这么难啊,mybatis考这么细
2 回复 分享
发布于 03-24 18:30 香港
Mark面评
2 回复 分享
发布于 03-24 18:02 陕西
你这也太多了吧,我下午也是一面,问的问题很基础但我回答的不是很好,半个小时就结束了,估计面试官是对我不感兴趣
1 回复 分享
发布于 03-24 18:58 湖南
佬,想问一下手撕是acm还是核心代码模式呀[
1 回复 分享
发布于 03-24 13:09 广东
接好运
1 回复 分享
发布于 03-24 12:16 辽宁
呀,说错了。mybatisplus有一个问题是,如何实现分页的
1 回复 分享
发布于 03-24 12:15 广东
怎么会问到springsecurity去的 好偏 你是有springsecurity的项目么
点赞 回复 分享
发布于 04-13 02:31 广东
好难
点赞 回复 分享
发布于 04-08 22:58 北京
不是 你这个也太难了吧 我已经拿到美团offer了 但是看你这个面经起码一半的问题不会…
点赞 回复 分享
发布于 04-08 22:21 湖北
Mark 好难
点赞 回复 分享
发布于 04-08 14:10 四川
嗨,有兴趣来华为终端bg实习吗 核心支付业务
点赞 回复 分享
发布于 04-01 20:38 山东
问的确实多,太不容易了。
点赞 回复 分享
发布于 04-01 09:59 广东
世另我
点赞 回复 分享
发布于 03-29 20:10 陕西
借楼打扰一下,淘天FY26核心电商部门春招实习各岗位都有内推,简历直达老板,转正率很高,各位佬要考虑一下我们吗?
点赞 回复 分享
发布于 03-26 19:15 浙江
接好运
点赞 回复 分享
发布于 03-26 17:59 上海
进池子是什么感觉
点赞 回复 分享
发布于 03-26 17:41 湖南
接好运
点赞 回复 分享
发布于 03-26 17:18 北京
哥 深一点的场景题怎么学啊
点赞 回复 分享
发布于 03-26 16:55 辽宁

相关推荐

03-29 22:01
中南大学 Java
## 3.25美团一面1. 自我介绍2. redis的使用场景,以及为什么使用redis?3. Zset的底层结构是什么?4. 为什么Zset要使用两种结构来实现?5. jemeter压测比较关注什么数据?6. 高并发场景的稳定性你是怎么理解的?7. 介绍一下秒杀的流程?8. 如果出现库存扣减成功但是异步调用失败了怎么办?9. 还是库存扣减成功了,但是调用mq的rpc接口失败了,怎么办?(我回答的是事务,回滚)10.承接上问,如果因为上述的问题,库存扣减了,mq没有接收到消息,导致库存不一致怎么办?11.redis的k,v结构是怎么设计的?12.怎么保证redis的数据不会丢失?13.主从集群有延迟,主节点刚存进去数据,还没同步就挂了,这时从节点没有数据, 那怎么办?14.mysql,订单表怎么设计的?15.如果活动很火爆,有100万QPS的访问量,只持续一分钟,或者5分钟的话,只有一个节点的话根本扛不住,怎么处理?16.场景题:大公司里给员工发工资,十分种以内发十万个人的工资。有一个表存的是公司的账户,里面存的金额。另一个表是员工表,记录的员工的信息。怎么处理?17.算法:删除链表倒数第N个节点(核心代码模式)## 3.26美团二面1.自我介绍2.聊以前的经历(高考,考研)3.项目中,你写了个异步处理和加redis缓存将相应时间降低50%,怎么个处理方式,以及是什么业务场景?4.什么样的场景使用消息对立比较合适?或者哪些任务你需要用消息队列去异步处理,你是怎么划分的?5.redis的哪些原理和特性,导致它是个高性能缓存工具?6.介绍自己研究生期间的成果,这个成果的想法怎么产生的,为什么业界的大公司都没想打你能想到。7.本地缓存和分布式缓存的区别,以及使用场景?8.radis的数据一致性相对于本地缓存比较好,是怎么保证?9.怎么保证redis和数据库的数据一致性?(先更新数据库再删除缓存)10.那为什么不先改数据库数据再去更新缓存呢?11.mq在什么场景下使用?12.设计分布式锁怎么去考量,比如key,value的设计,怎么避免死锁?13.rpc从发起到接收,用哪些协议,有哪些阶段哪些流程?14.讲一下高并发架构的设计15.对ai的理解16.闲聊(无手撕)#牛客AI配图神器##面经java##美团约面#
点赞 评论 收藏
分享
评论
45
358
分享

创作者周榜

更多
牛客网
牛客企业服务