✅4年经验,上海某跨境电商,千万级大表经验

✅4年经验,上海某跨境电商,千万级大表经验

面试者背景

:::warning 21年毕业,上海,跨境电商,多平台对接,核心功能从0到1实现,分布式经验,分布式限流、千万级大表分表经验,多级缓存。

业务介绍下。发布商品,同步,订单同步,状态变更。

第三方接口对接的难点是什么?调第三方接口超时如何处理?重试是如何实现的?spring

你的分布式限流怎么做的?redis+guava rate limiter+aopguava不是单机限流么?

讲一下一次请求进来,你的限流是怎么运转的?令牌桶、map

介绍下你了解的限流算法?固定窗口、滑动窗口、令牌桶、漏桶?固定窗口vs滑动窗口?

那种算法适合应对突发流量?为什么?令牌桶允许积攒令牌。

什么时候用分布式限流,什么时候用单机限流。做了分布式限流后,还有必要做单机限流吗?为啥?

分库分表,只做了分表,分了10张表,一共多少数据?3000万。怎么定的分10张表。

分库分表是针对商品表吗?3000万商品。分表字段是哪个?店铺id,一个平台一张表,

同一个平台的不同店铺分到不同的表怎么办?用了shardingjdbc

Shardingjdbc****除了分表路由,还有其他功能么?shardingjdbc支持哪几种分表策略?

商品是个单独微服务吗?如何实现的商品操作走分库分表,操作店铺不走分库分表?多数据源

做分库分表后,数据迁移是你做的吗?

你觉得做分库分表最大的难点是什么?选型,分表键、分布式id生成,动态数据源切换。

商品表有扫表任务吗**?分库分表后如何扫表?带店铺id****?**

分布式id用的什么方案?号段模式,维护号段表。

为啥不直接用shardingjdbc支持的雪花算法?workerid不好搞。时钟回拨问题。

介绍下工作中遇到的慢SQL情况?没加索引、大表joinjson查询、in查询、

**如何定位到没加索引的问题的?执行计划看啥?typerageref)、keylength、**extra

Extra=using index condition****是什么情况?索引下推是什么?using filesort是什么情况?

其他线上问题排查过吗?oom问题、消息堆积。

如果现在线上出现了oom,你会如何排查?

Chat项目和电商有啥区别么?为啥用netty**?netty的粘包,拆包。**

项目中用过设计模式么?哪种?工厂**+策略+模板方法。介绍下场景和背景。工厂的map****是如何初始化的?**

项目中为啥用多级缓存?商品-物流方式、redis宕机、只用本地缓存不行吗?

:::

题目解析

:::color4 第三方接口对接的难点是什么?调第三方接口超时如何处理?重试是如何实现的?spring,

:::

✅给第三方提供接口调用,需要注意些什么?

:::color4 你的分布式限流怎么做的?redis+guava rate limiter+aopguava不是单机限流么?

讲一下一次请求进来,你的限流是怎么运转的?令牌桶、map

介绍下你了解的限流算法?固定窗口、滑动窗口、令牌桶、漏桶?固定窗口vs滑动窗口?

那种算法适合应对突发流量?为什么?令牌桶允许积攒令牌。

什么时候用分布式限流,什么时候用单机限流。做了分布式限流后,还有必要做单机限流吗?为啥?

:::

✅什么是限流?常见的限流算法有哪些?

✅漏桶和令牌桶有啥区别?

✅什么是滑动窗口限流?

✅单机限流和集群限流的区别是什么?

:::color4 分库分表,只做了分表,分了10张表,一共多少数据?3000万。怎么定的分10张表。

分库分表是针对商品表吗?3000万商品。分表字段是哪个?店铺id,一个平台一张表,

同一个平台的不同店铺分到不同的表怎么办?用了shardingjdbc

Shardingjdbc****除了分表路由,还有其他功能么?shardingjdbc支持哪几种分表策略?

商品是个单独微服务吗?如何实现的商品操作走分库分表,操作店铺不走分库分表?多数据源

做分库分表后,数据迁移是你做的吗?

你觉得做分库分表最大的难点是什么?选型,分表键、分布式id生成,动态数据源切换。

商品表有扫表任务吗?分库分表后如何扫表?带店铺id?

:::

✅分表字段如何选择?

✅ShardingJDBC有哪些分片策略,你用的哪个?

✅分库分表后怎么设计可以降低数据迁移的难度?

✅如何做平滑的数据迁移?

✅基于XXL-JOB的分片实现分库分表后的扫表

:::color4 分布式id用的什么方案?号段模式,维护号段表。

为啥不直接用shardingjdbc支持的雪花算法?workerid不好搞。时钟回拨问题。

:::

✅分布式ID生成方案都有哪些?

✅让你设计一个订单号生成服务,该怎么做?

:::color4 介绍下工作中遇到的慢SQL情况?没加索引、大表joinjson查询、in查询、

**如何定位到没加索引的问题的?执行计划看啥?typerageref)、keylength、**extra

Extra=using index condition是什么情况?索引下推是什么?using filesort是什么情况?

:::

✅慢SQL的问题如何排查?

✅SQL执行计划分析的时候,要关注哪些信息?

:::color4 其他线上问题排查过吗?oom问题、消息堆积。

如果现在线上出现了oom,你会如何排查?

:::

✅OOM问题排查过程

✅RocketMQ消息堆积了怎么解决?

:::color4 项目中为啥用多级缓存?商品-物流方式、redis宕机、只用本地缓存不行吗?

:::

✅本地缓存和分布式缓存有什么区别?