✅4年经验,上海某跨境电商,千万级大表经验
面试者背景
:::warning 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宕机、只用本地缓存不行吗?
:::
题目解析
:::color4 第三方接口对接的难点是什么?调第三方接口超时如何处理?重试是如何实现的?spring,
:::
:::color4 你的分布式限流怎么做的?redis+guava rate limiter+aop,guava不是单机限流么?
讲一下一次请求进来,你的限流是怎么运转的?令牌桶、map?
介绍下你了解的限流算法?固定窗口、滑动窗口、令牌桶、漏桶?固定窗口vs滑动窗口?
那种算法适合应对突发流量?为什么?令牌桶允许积攒令牌。
什么时候用分布式限流,什么时候用单机限流。做了分布式限流后,还有必要做单机限流吗?为啥?
:::
:::color4 分库分表,只做了分表,分了10张表,一共多少数据?3000万。怎么定的分10张表。
分库分表是针对商品表吗?3000万商品。分表字段是哪个?店铺id,一个平台一张表,
同一个平台的不同店铺分到不同的表怎么办?用了shardingjdbc?
Shardingjdbc****除了分表路由,还有其他功能么?shardingjdbc支持哪几种分表策略?
商品是个单独微服务吗?如何实现的商品操作走分库分表,操作店铺不走分库分表?多数据源
做分库分表后,数据迁移是你做的吗?
你觉得做分库分表最大的难点是什么?选型,分表键、分布式id生成,动态数据源切换。
商品表有扫表任务吗?分库分表后如何扫表?带店铺id?
:::
:::color4 分布式id用的什么方案?号段模式,维护号段表。
为啥不直接用shardingjdbc支持的雪花算法?workerid不好搞。时钟回拨问题。
:::
:::color4 介绍下工作中遇到的慢SQL情况?没加索引、大表join、json查询、in查询、
**如何定位到没加索引的问题的?执行计划看啥?type(rage、ref)、key、length、**extra
Extra=using index condition是什么情况?索引下推是什么?using filesort是什么情况?
:::
:::color4 其他线上问题排查过吗?oom问题、消息堆积。
如果现在线上出现了oom,你会如何排查?
:::
:::color4 项目中为啥用多级缓存?商品-物流方式、redis宕机、只用本地缓存不行吗?
:::