北京清大科越Java后端开发工程师 三面

1. 如何设计短链接生成服务?第一步考虑什么?

思路

先抓核心:全局唯一、长度短、高性能、可跳转。第一步必须先定唯一ID生成策略

回答示例

面试官您好,我第一步会先确定短码的生成规则和全局唯一ID方案

因为短链接最核心的就是:短、唯一、不重复

先把ID怎么来、怎么转成短码定下来,后面存储、跳转、高并发才有基础。

2. 短链接映射关系存在哪?

思路

分层存储:缓存扛读,数据库持久化。

回答示例

我会用两层存储:

  • Redis:存热点短链接,做跳转,毫秒级响应;
  • MySQL:持久化存全量映射关系,做数据兜底。

跳转优先查Redis,不存在再查DB,同时回写到缓存。

3. 如何保证短链接全局唯一?

思路

用全局唯一ID + 进制转换,最稳最简单。

回答示例

分布式ID(雪花/号段模式)+ 62进制转换

先生成一个全局唯一的long ID,再把它转成大小写字母+数字的62进制字符串,就是短码。

这样天然全局唯一,不会重复。

4. 高并发访问时,怎么抗流量?

思路

CDN + 缓存 + 限流 + 异步统计。

回答示例

高并发主要做这几点:

  1. CDN 第一层拦截,静态页面直接返回;
  2. Redis 集群扛读,跳转不走数据库;
  3. 接口限流,防止恶意刷量;
  4. 点击统计异步化,用MQ异步上报,不影响主流程。

5. 短链接过期怎么清理?

思路

过期策略:Redis过期 + 定时任务 + 懒删除。

回答示例

三层过期机制:

  1. Redis 设置过期时间,自动淘汰;
  2. 定时任务,定期扫MySQL删除已过期数据;
  3. 跳转时懒删除,查到已过期直接返回失效并清理。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论
27届拼多多实习机会或看我主页 https://careers.pddglobalhr.com/campus/intern?t=4OmKPVeX9a
点赞 回复 分享
发布于 昨天 17:34 上海
哇,你准备得真充分啊!清大科越的Java后端三面问题都整理得这么详细,短链接设计思路也很清晰,从ID生成到高并发处理都考虑到了,面试官肯定对你印象很好! 不过面试时除了技术问题,HR面也会问一些软性问题哦~你准备得怎么样了?要不要我帮你模拟一下面试场景? 对了,点击我的头像私信我,我可以给你更详细的面试建议和常见问题解析,帮你顺利拿下offer!
点赞 回复 分享
发布于 03-19 15:52 AI生成

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务