主题
面试速答(先看这里)
**一句话结论:**21年毕业,上海,跨境电商,多平台对接,核心功能从0到1实现,分布式经验,分布式限流、千万级大表分表经验,多级缓存。
60秒标准回答:
21年毕业,上海,跨境电商,多平台对接,核心功能从0到1实现,分布式经验,分布式限流、千万级大表分表经验,多级缓存
业务介绍下。发布商品,同步,订单同步,状态变更
第三方接口对接的难点是什么?调第三方接口超时如何处理?重试是如何实现的? spring
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**第三方接口对接的难点是什么?
- **要点2:**那种算法适合应对突发流量?
- **要点3:**商品是个单独微服务吗?
- **要点4:**商品表有扫表任务吗 ? 分库分表后如何扫表?
- **要点5:**如何定位到没加索引的问题的?
**记忆锚点:**shardingjdbc → id → map → oom → Shardingjdbc → length
加分表达:
- 21年毕业,上海,跨境电商,多平台对接,核心功能从0到1实现,分布式经验,分布式限流、千万级大表分表经验,多级缓存。
- 如果现在线上出现了oom,你会如何排查?
- 介绍下场景和背景。
追问准备:
- 第三方接口对接的难点是什么?
- 调第三方接口超时如何处理?
- 重试是如何实现的?
- spring , 你的分布式限流怎么做的?
面试者背景
> 21年毕业,上海,跨境电商,多平台对接,核心功能从0到1实现,分布式经验,分布式限流、千万级大表分表经验,多级缓存。 > > 业务介绍下。发布商品,同步,订单同步,状态变更。 > > 第三方接口对接的难点是什么?调第三方接口超时如何处理?重试是如何实现的?spring, > > 你的分布式限流怎么做的?redis+guava rate limiter+aop,guava不是单机限流么? > > 讲一下一次请求进来,你的限流是怎么运转的?令牌桶、map? > > 介绍下你了解的限流算法?固定窗口、滑动窗口、令牌桶、漏桶?固定窗口vs滑动窗口? > > 那种算法适合应对突发流量?为什么?令牌桶允许积攒令牌。 > > 什么时候用分布式限流,什么时候用单机限流。做了分布式限流后,还有必要做单机限流吗?为啥? > > 分库分表,只做了分表,分了10张表,一共多少数据?3000万。怎么定的分10张表。 > > 分库分表是针对商品表吗?3000万商品。分表字段是哪个?店铺id,一个平台一张表, > > 同一个平台的不同店铺分到不同的表怎么办?用了shardingjdbc? > > Shardingjdbc****除了分表路由,还有其他功能么?shardingjdbc支持哪几种分表策略? > > 商品是个单独微服务吗?如何实现的商品操作走分库分表,操作店铺不走分库分表?多数据源 > > 做分库分表后,数据迁移是你做的吗? > > 你觉得做分库分表最大的难点是什么?选型,分表键、分布式id生成,动态数据源切换。 > > 商品表有扫表任务吗**?分库分表后如何扫表?带店铺id****?** > > 分布式id用的什么方案?号段模式,维护号段表。 > > 为啥不直接用shardingjdbc支持的雪花算法?workerid不好搞。时钟回拨问题。 > > 介绍下工作中遇到的慢SQL情况?没加索引、大表join、json查询、in查询、 > > 如何定位到没加索引的问题的?执行计划看啥?type(rage、ref)、key、length、extra > > **Extra=using index condition**是什么情况?索引下推是什么?using filesort是什么情况? > > 其他线上问题排查过吗?oom问题、消息堆积。 > > 如果现在线上出现了oom,你会如何排查? > > Chat项目和电商有啥区别么?为啥用netty**?netty的粘包,拆包。** > > 项目中用过设计模式么?哪种?工厂**+策略+模板方法。介绍下场景和背景。工厂的map****是如何初始化的?** > > 项目中为啥用多级缓存?商品-物流方式、redis宕机、只用本地缓存不行吗?
题目解析
> 第三方接口对接的难点是什么?调第三方接口超时如何处理?重试是如何实现的?spring,
> 你的分布式限流怎么做的?redis+guava rate limiter+aop,guava不是单机限流么? > > 讲一下一次请求进来,你的限流是怎么运转的?令牌桶、map? > > 介绍下你了解的限流算法?固定窗口、滑动窗口、令牌桶、漏桶?固定窗口vs滑动窗口? > > 那种算法适合应对突发流量?为什么?令牌桶允许积攒令牌。 > > 什么时候用分布式限流,什么时候用单机限流。做了分布式限流后,还有必要做单机限流吗?为啥?
> 分库分表,只做了分表,分了10张表,一共多少数据?3000万。怎么定的分10张表。 > > 分库分表是针对商品表吗?3000万商品。分表字段是哪个?店铺id,一个平台一张表, > > 同一个平台的不同店铺分到不同的表怎么办?用了shardingjdbc? > > Shardingjdbc****除了分表路由,还有其他功能么?shardingjdbc支持哪几种分表策略? > > 商品是个单独微服务吗?如何实现的商品操作走分库分表,操作店铺不走分库分表?多数据源 > > 做分库分表后,数据迁移是你做的吗? > > 你觉得做分库分表最大的难点是什么?选型,分表键、分布式id生成,动态数据源切换。 > > 商品表有扫表任务吗?分库分表后如何扫表?带店铺id?
打开文档:✅ShardingJDBC有哪些分片策略,你用的哪个?
> 分布式id用的什么方案?号段模式,维护号段表。 > > 为啥不直接用shardingjdbc支持的雪花算法?workerid不好搞。时钟回拨问题。
> 介绍下工作中遇到的慢SQL情况?没加索引、大表join、json查询、in查询、 > > **如何定位到没加索引的问题的?执行计划看啥?type(rage、ref)、key、length、**extra > > Extra=using index condition是什么情况?索引下推是什么?using filesort是什么情况?
> 其他线上问题排查过吗?oom问题、消息堆积。 > > 如果现在线上出现了oom,你会如何排查?
> 项目中为啥用多级缓存?商品-物流方式、redis宕机、只用本地缓存不行吗?