Skip to content

面试速答(先看这里)

**一句话结论:**completableFuture 用了它的什么功能?

60秒标准回答:

7 年, Java 后端, 2 家大厂工作各 3 年,下单页、订单、性能,稳定性,民宿业务,导购、页面耗时优化

导购页面性能优化方案,有哪些?有哪些技术手段?链路梳理、流程优化(异步)、代码性能优化、外调接口异步,线程池并行查询, completableFuture

如果外部接口的 RT 无法保证,如何处理?弱依赖、降级。比如评价没查到,如何降级?

**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点

回答主线:

  • **要点1:**7 年, Java 后端, 2 家大厂工作各 3 年,下单页、订单、性能,稳定性,民宿业务,导购、页面耗时优化,
  • **要点2:**导购页面性能优化方案,有哪些?
  • **要点3:**如果外部接口的 RT 无法保证,如何处理?
  • **要点4:**分库分表做过吗?
  • **要点5:**如何保证读幂等?

**记忆锚点:**completableFuture → executorService → redisson → watchdog → redlock → Redis

关键取舍:

  • 7 年, Java 后端, 2 家大厂工作各 3 年,下单页、订单、性能,稳定性,民宿业务,导购、页面耗时优化, 导购页面性能优化方案,有哪些?
  • 链路梳理、流程优化(异步)、代码性能优化、外调接口异步,线程池并行查询, completableFuture , 如果外部接口的 RT 无法保证,如何处理?
  • 性能,复用性, 分库分表做过吗?

易错提醒:

  • 存量迁移和增量双写之间如何避免丢数据?
  • 如何避免压测数据影响正常数据?

加分表达:

  • 如果有一个外部接口必要降级,你自己会怎么做?

追问准备:

  • 7 年, Java 后端, 2 家大厂工作各 3 年,下单页、订单、性能,稳定性,民宿业务,导购、页面耗时优化, 导购页面性能优化方案,有哪些?
  • 有哪些技术手段?
  • 链路梳理、流程优化(异步)、代码性能优化、外调接口异步,线程池并行查询, completableFuture , 如果外部接口的 RT 无法保证,如何处理?
  • 比如评价没查到,如何降级?

面试者背景 ​

> 7年,Java后端,2家大厂工作各3****年,下单页、订单、性能,稳定性,民宿业务,导购、页面耗时优化, > > 导购页面性能优化方案,有哪些?有哪些技术手段?链路梳理、流程优化(异步)、代码性能优化、外调接口异步,线程池并行查询,completableFuture, > > 如果外部接口的RT无法保证,如何处理?弱依赖、降级。比如评价没查到,如何降级? > > 如果有一个外部接口必要降级,你自己会怎么做? > > completableFuture用了它的什么功能?流式编程,他和executorService****区别是啥?线程窃取, > > 导购这部分的难点?性能,复用性, > > 分库分表做过吗?分库分表之后全局ID如何做的?雪花算法(时间戳、机器码、业务类型、标记位),时钟回拨问题?分表字段如何选的?分表算法是什么?假如128分表不够了怎么办?再扩容**+迁移、数据清理。业务不中断情况下数据迁移如何做?存量迁移和增量双写之间如何避免丢数据? > > 如果有一个大的商户,导致数据倾斜,如何解决? > > **幂等是什么?如何保证读幂等?读用做幂等吗?写请求的幂等如何保证?加锁、校验、执行。加锁用什么锁?不加锁有啥问题?如果有唯一性约束了,还需要加锁吗?f(x)= f(f(x)) > > **Redis实现分布锁的时候,哪些问题需要考虑?超时时间、redisson(watchdog)、redlock解决的是什么问题?拿到锁的机器挂了会有啥问题吗?** > > **工作7年来,遇到的最大挑战是什么?稳定性,衡量稳定性指标?****SLA,**几个九(宕机时间)、 > > 设计一个高可用的架构考虑哪些方案?异地多活、微服务、限流熔断降级、 > > 限流、降级,熔断区别是啥?限流保护自己、给外部接口降级、 > > 压测做过吗?什么是全链路压测?如何避免压测数据影响正常数据?压测标、影子表。压测标自己识别吗? > > 大促除了压测,预案怎么做的?大促封网状态,如何保证预案能执行?预案开关、 > > 线上问题排查案例讲一个。Fullgc,如何用arthas定位到那个大的list的?

题目解析 ​

> 导购页面性能优化方案,有哪些?有哪些技术手段?链路梳理、流程优化(异步)、代码性能优化、外调接口异步,线程池并行查询,completableFuture, > > 如果外部接口的RT无法保证,如何处理?弱依赖、降级。比如评价没查到,如何降级? > > 如果有一个外部接口必要降级,你自己会怎么做? > > completableFuture用了它的什么功能?流式编程,他和executorService区别是啥?线程窃取, > > 导购这部分的难点?性能,复用性,

📄 ✅使用CompletableFuture完成并发编排,提升接口性能

打开文档:✅使用CompletableFuture完成并发编排,提升接口性能

📄 ✅和外部机构交互如何防止被外部服务不可用而拖垮

打开文档:✅和外部机构交互如何防止被外部服务不可用而拖垮

📄 ✅限流、降级、熔断有什么区别?

打开文档:✅限流、降级、熔断有什么区别?

> 分库分表做过吗?分库分表之后全局ID如何做的? > > 雪花算法?(时间戳、机器码、业务类型、标记位),时钟回拨问题?分表字段如何选的?分表算法是什么? > > 假如128分表不够了怎么办?再扩容+迁移、数据清理。 > > 业务不中断情况下数据迁移如何做?存量迁移和增量双写之间如何避免丢数据? > > 如果有一个大的商户,导致数据倾斜,如何解决?

📄 ✅分表后全局ID如何生成?

打开文档:✅分表后全局ID如何生成?

📄 ✅什么是雪花算法,怎么保证不重复的?

打开文档:✅什么是雪花算法,怎么保证不重复的?

📄 ✅什么是数据倾斜,会带来哪些问题?如何解决?

打开文档:✅什么是数据倾斜,会带来哪些问题?如何解决?

> 幂等是什么?如何保证读幂等?读用做幂等吗?写请求的幂等如何保证?加锁、校验、执行。加锁用什么锁?不加锁有啥问题?如果有唯一性约束了,还需要加锁吗?f(x)= f(f(x))

📄 ✅如何解决接口幂等的问题?

打开文档:✅如何解决接口幂等的问题?

> Redis实现分布锁的时候,哪些问题需要考虑?超时时间、redisson(watchdog)、redlock解决的是什么问题?拿到锁的机器挂了会有啥问题吗?

📄 ✅如何用Redisson实现分布式锁?

打开文档:✅如何用Redisson实现分布式锁?

📄 ✅什么是RedLock,他解决了什么问题?

打开文档:✅什么是RedLock,他解决了什么问题?

> 工作7年来,遇到的最大挑战是什么?稳定性,衡量稳定性指标?SLA,几个九(宕机时间)、

📄 ✅什么是SLA?

打开文档:✅什么是SLA?

> 设计一个高可用的架构考虑哪些方案?异地多活、微服务、限流熔断降级、 > > 限流、降级,熔断区别是啥?限流保护自己、给外部接口降级、

📄 ✅如何设计一个高可用架构?

打开文档:✅如何设计一个高可用架构?

📄 ✅限流、降级、熔断有什么区别?

> 压测做过吗?什么是全链路压测?如何避免压测数据影响正常数据?压测标、影子表。压测标自己识别吗? > > 大促除了压测,预案怎么做的?大促封网状态,如何保证预案能执行?预案开关、

📄 ✅什么是全链路压测?

打开文档:✅什么是全链路压测?

> 线上问题排查案例讲一个。Fullgc,如何用arthas定位到那个大的list的?

📄 ✅频繁FullGC问题排查

打开文档:✅频繁FullGC问题排查

📄 ✅频繁FullGC问题排查(2)

打开文档:✅频繁FullGC问题排查(2)