✅工作6年,211本,2手平台,卖家业务,结算

面试者背景

:::warning 今日面试者:6*年经验,211本,spring技术栈,redissql调优,数据迁移,rocketmq,服务重构微服务,2*手平台,卖家业务,结算,售后,大商家,

大商家有什么特点?库存之间做了系统对接吗?商品发布方式?接口对接

接口的鉴权,防刷是怎么做的?没做。。。限流做了么?如果要做怎么做?

项目中有哪些亮点?架构的演变,重复能力建设,通用能力抽象领域服务(物流、售后),为啥这两个服务可以单独抽象出来?售后产生的物流信息是属于物流域还是售后域?如何决定的?

抽象出领域之后,还有一些业务定制内容(比如售后XX**天,物流分上门或者买家寄)如何实现?

状态机+*事件做物品状态更新?fromtocas。状态机自己实现的?方法是怎么样的实现?如何判断状态是否可以流转,具体如何做的状态控制?Spring*的状态机有了解过吗?

分库分表做过吗?分表是水平的还是垂直分的?为了解决啥问题?按照月份分表。跨月查询怎么查。

SQL调优介绍下,做了啥?宽表拆分成主表和扩展表,为啥要这么做?*join比宽表慢怎么办?*

索引优化做了哪些优化?加联合索引会考虑哪些问题?product*、numberstatus*哪个放左边为啥?为啥区分度更高的放前面?

SQL语句:*where product= and number = and status = *,联合索引中,把*number或者status放前面有区别吗?*

微服务的拆分,有哪些原则呢?通用能力、

分布式事务用过吗?用过哪种?TCC**,最大努力通知,

TCC介绍下?*try锁定资源,commit提交事务。Commit失败会需要cancel吗?*

TCC有什么缺点?侵入性。*cancel先到,commit后到。(事务悬挂、空回滚)*

最大努力通知mq**发失败了咋办?重试,重试过程挂了咋办?

还有其他的分布式方案吗?seata**、本地消息表、事务消息。选择的依据是什么?

数据对账做过吗?怎么做。定时任务,跨天怎么办?数据不一致告警怎么做的?任务跑失败了如何感知?除了扫表还有其他方案吗?

String有长度限制吗?**

应用启动后的前几分钟,RT长、Load和CPU都高,如何定位?可能有哪些原因?

:::

题目解析

:::color4 大商家有什么特点?库存之间做了系统对接吗?商品发布方式?接口对接

接口的鉴权,防刷是怎么做的?没做。。。限流做了么?如果要做怎么做?

:::

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

✅为了防止接口被恶意调用,设计API秘钥方式提升接口安全性,并通过滑动窗口粗实现接口调用限流。

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

:::color4 项目中有哪些亮点?架构的演变,重复能力建设,通用能力抽象领域服务(物流、售后),为啥这两个服务可以单独抽象出来?售后产生的物流信息是属于物流域还是售后域?如何决定的?

抽象出领域之后,还有一些业务定制内容(比如售后XX天,物流分上门或者买家寄)如何实现?

:::

✅如何理解领域驱动设计?

:::color4 状态机+事件做物品状态更新?from、to,cas。状态机自己实现的?方法是怎么样的实现?如何判断状态是否可以流转,具体如何做的状态控制?Spring的状态机有了解过吗?

:::

✅什么是状态机,能描述一下状态机的实现原理吗?

:::color4 分库分表做过吗?分表是水平的还是垂直分的?为了解决啥问题?按照月份分表。跨月查询怎么查。

:::

✅什么是分库?分表?分库分表?

✅分库分表后如何进行分页查询?

:::color4 SQL调优介绍下,做了啥?宽表拆分成主表和扩展表,为啥要这么做?*join比宽表慢怎么办?*

索引优化做了哪些优化?加联合索引会考虑哪些问题?product*、numberstatus*哪个放左边为啥?为啥区分度更高的放前面?

SQL语句:where product= and number = and status = ,联合索引中,把number或者status放前面有区别吗?

:::

✅为什么大厂不建议使用多表join?

✅什么是最左前缀匹配?为什么要遵守?

✅where条件的顺序影响使用索引吗?

:::color4 微服务的拆分,有哪些原则呢?通用能力、

:::

✅如何进行微服务的拆分?

:::color4 分布式事务用过吗?用过哪种?TCC**,最大努力通知,

TCC介绍下?*try锁定资源,commit提交事务。Commit失败会需要cancel吗?*

TCC有什么缺点?侵入性。*cancel先到,commit后到。(事务悬挂、空回滚)*

最大努力通知mq**发失败了咋办?重试,重试过程挂了咋办?

还有其他的分布式方案吗?seata、本地消息表、事务消息。选择的依据是什么?

:::

✅常见的分布式事务有哪些?

✅什么是TCC,和2PC有什么区别?

✅TCC的空回滚和悬挂是什么?如何解决?

✅什么是最大努力通知?

:::color4 数据对账做过吗?怎么做。定时任务,跨天怎么办?数据不一致告警怎么做的?任务跑失败了如何感知?除了扫表还有其他方案吗?

:::

✅怎么做数据对账?

:::color4 String有长度限制吗?

:::

✅String有长度限制吗?是多少?

:::color4 应用启动后的前几分钟,RT长、Load和CPU都高,如何定位?可能有哪些原因?

:::

✅Load飙高问题排查过程

原文: https://www.yuque.com/hollis666/xkm7k3/go292otyic13eg5v