25年12月小红书Java开发工程师 二面
1. UUID作为分布式ID的主要缺陷是什么?
思路
抓住三点:无序、太长、信息无意义,面试直接说重点。
回答示例
UUID 主要有三个缺陷:
- 无序,导致 MySQL 索引分裂严重,写入性能差;
- 长度太长(128 位、36 位字符串),占空间、传输慢、查询慢;
- 无业务含义,不包含时间、机器、序列号等信息,无法排序和追踪。
所以分布式系统一般不用 UUID,优先用雪花算法、号段模式。
2. Kafka中HW(高水位)与LEO(日志末端偏移量)的关系?
思路
讲清楚各自含义 + 关系 + 消费可见性。
回答示例
- LEO(Log End Offset):每个副本最后一条消息的下一个偏移量,代表该副本最新写入位置。
- HW(High Watermark):所有同步副本(ISR)中最小的 LEO,消费者只能消费到 HW 之前的消息。
简单说:HW 是所有副本都确认同步成功的位置,保证消息不丢失。
3. Elasticsearch中term查询与match查询的本质差异?
思路
一句话区分:是否分词。
回答示例
- term:不分词,精确匹配倒排索引里的词,用于 keyword、数字、枚举。
- match:先分词,再查询,会把查询内容分词后去匹配,用于全文检索。
本质区别:是否经过分词器。
4. 服务降级开关通常通过什么中间件动态控制?
思路
说最常用、最标准的答案。
回答示例
一般用配置中心:Nacos、Apollo、Spring Cloud Config。
把降级开关存在配置中心,后台修改后,服务实时监听生效,实现动态降级。
5. 网关层实现IP黑白名单的高效数据结构?
思路
网关高并发,要 O(1) 查询。
回答示例
用 Set / HashSet,或者布隆过滤器。
IP 黑白名单只需要判断“存在/不存在”,Hash 查询是 O(1),最适合网关高并发场景。
6. 秒杀场景中数据库层防超卖的原子操作写法?
思路
写标准 SQL,强调原子性。
回答示例
用 UPDATE 带条件 的原子SQL:
UPDATE stock SET count = count - 1 WHERE id = ? AND
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
【八股真解】精炼最新高频面经 文章被收录于专栏
本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏
查看7道真题和解析