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? ::: ✅分表字段如何选择? ✅ShardingJDBC有哪些分片策略,你用的哪个? ✅分库分表后怎么设计可以降低数据迁移的难度? ✅如何做平滑的数据迁移? ✅基于XXL-JOB的分片实现分库分表后的扫表 :::color4 分布式id用的什么方案?号段模式,维护号段表。 为啥不直接用shardingjdbc支持的雪花算法?workerid不好搞。时钟回拨问题。 ...