Markdown Note
3.22美团面试记录:
最近更新:2026/03/24
1、IP V4与V6区别:
在安全性上的区别 IPv6强制支持IPSec加密 IPv6不需要NAT转换,通信更加透明
IPv6 在安全性上相比 IPv4 有明显提升,主要体现在三点:
第一,IPv6 原生支持 IPsec,提供加密、认证和完整性保护;
第二,IPv6 地址空间巨大,使得网络扫描和攻击更加困难;
第三,IPv6 取消了广播并弱化 NAT,提高了网络结构的安全性和可控性。
但需要注意的是,IPv6 并不是天然安全,仍然需要合理配置防火墙和安全策略。
2、垃圾回收机制原理、对比G1以及CMS以及Seriol、、、与传统分区的优势,解决了什么痛点
3、Redis如何提高缓存命中率,如何设计Reids的key键保证效率同时安全性,如何解决Redis的缓存污染
冷热链、大数据、空间局部性、Redis键设计唯一(时间戳?) https://chatgpt.com/s/t_69c23d4f924881919794c3e3078ceee5 提高缓存命中率:1、数据预热;2、冷热分区(热点数据设置更长的TTL,非热数据短时间过期);3、增加本地缓存减小Redis压力;4、布隆过滤器(布谷鸟更好)过滤无效请求防止,挤掉热点数据 解决缓存污染:1、冷热链分区;2、布隆过滤器;3、合理的缓存淘汰策略;4、限制单次批量写入量
4、分库分表,单表热点数据怎么办,怎么设置分片键
分片键设计: 分片键(Sharding Key)就是:决定一条数据落在哪个库/表的字段 特点:数据分布均匀、减少跨库表查询、分片键本身最好支持核心查询(id)、可扩展(8个到16个分片)
对于热点数据(大V商家),可以对商家ID后➕随机后缀 %% 不用自增ID做分片键:写入集中 %% 考虑易扩容:%% 一致性哈希 %%和预分片,预分片:先分 1024 个逻辑分片 再映射到物理库,扩容时只调整映射+迁移部分分片数据(局部迁移)。不需要全部迁移。(与哈希槽一样)
5、权限校验系统的实现,AOP+注解的局限性(扩展?),怎么解决这个局限性
局限性: 1、接口级,不能限制单个资源,或者单个数据的权限; 2、强耦合,权限控制写死在代码中,更改权限等级需要修改代码:分布式的配置中心Redis或者Nacos这种。更好的是,表达式引擎(SpEL),可以动态的修改配置 3、对于数据级的权限可以,下放到SQL层做校验,SELECT * FROM orders WHERE user_id = 当前用户,更完善的,责任链扩展(将接口、部门、用户、数据不同的校验逻辑解耦封装为策略模式,最后联合起来运用)
6、项目:Redis的缓存一致;容灾策略;主节点挂掉采用从节点数据延迟的问题如何解决
Redis集群强一致性解决: https://www.doubao.com/thread/w18767079993a6168 导致不一致的原因:异步复制延迟、脑裂(由于网路分区问题,哨兵误以为主节点挂了,选出新主,但是旧主依然在写入客户端数据,网络恢复之后,旧主变为从,数据丢失)
哨兵配置上:min-replicas-to-write(主节点至少看到n个从节点正常才写,不然阻塞。解决脑裂) 开启AOF,丢失数据少,还是有少量丢失 消息队列:实现最终一致性 补充:加入监控机制,实时查看从节点复制情况,复制情况低于阈值就会让客户端不读这个数据。
对于切换过程中新写入的数据,Redis会返回写入失败,解决: https://www.doubao.com/thread/wdc443c834cb77660 1、业务上实现重试机制(3次) 2、重试失败后,暂时将数据写入本地缓存或者MySQL中(或者MQ)
7、想法到实践,难点与解决
8、对大模型的运用
AI Agent和RAG 遇到的难点