主题
面试速答(先看这里)
**一句话结论:**今日面试者: 23 年毕业,大数据开发平台、数据安全 & 质量监控、 seata 开源贡献、
60秒标准回答:
今日面试者: 23 年毕业,大数据开发平台、数据安全 & 质量监控、 seata 开源贡献、
权限管控是自建的吗?介绍下权限管控功能设计。一个用户想要执行 SQL ,如何判断能不能执行?
权限模型是如何设计的?审批流是怎么做的?流程引擎
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**权限管控是自建的吗?
- **要点2:**不同的表的审批流程不一样,如何实现的?
- **要点3:**给 seata 提交过什么代码?
- **要点4:**介绍下seata各种模式的特点和适用场景?xa强一致性、at本地事务先提交、undo-log回滚,tcc空回滚、事务悬挂,saga长事务。
- **要点5:**给 seata 提交过什么代码?
**记忆锚点:**seata → redisson → rocketmq → like → dump → Redisson
易错提醒:
- 一个用户想要执行 SQL ,如何判断能不能执行?
- jmap、 这种问题,一定不能上来就说你的排查过程,那样就像是背的,一定要从背景,问题的发现开始讲起来。
加分表达:
- 项目中有并发场景吗?
- 如果请求中没有一个唯一的识别号怎么做幂等?
- 介绍下seata各种模式的特点和适用场景?xa强一致性、at本地事务先提交、undo-log回滚,tcc空回滚、事务悬挂,saga长事务。
追问准备:
- 今日面试者: 23 年毕业,大数据开发平台、数据安全 & 质量监控、 seata 开源贡献、 权限管控是自建的吗?
- 一个用户想要执行 SQL ,如何判断能不能执行?
- 权限模型是如何设计的?
- 审批流是怎么做的?
面试者背景
> 今日面试者:23年毕业,大数据开发平台、数据安全**&质量监控、seata开源贡献、 > > **权限管控是自建的吗?介绍下权限管控功能设计。一个用户想要执行SQL**,如何判断能不能执行?** > > 权限模型是如何设计的?审批流是怎么做的?流程引擎。 > > 不同的表的审批流程不一样,如何实现的?责任链。不同的策略如何实现的?跨BU、外包、等级等。 > > 项目中有并发场景吗?审批通过回调并发,授权抢锁、都用了状态判断为啥还需要加分布式锁?乐观锁 > > 分布式锁如何实现的?redisson、自定义注解**+切面。要锁什么东西,怎么配置?spel表达式。怎么写 > > **为啥用redisson而不是用setnx**?超时时间、自动续期。Redisson自动续期实现原理?watchdog是咋实现的?定时是怎么实现的?** > > 加锁的时候,redis不可用了咋整?降级处理。 > > 什么叫做幂等?想要实现幂等需要做什么?唯一识别号、状态机。查询接口怎么实现幂等? > > 如果请求中没有一个唯一的识别号怎么做幂等?表单提交没有幂等号怎么防止重复提交? > > 项目中解决like无法走索引问题,展开介绍下。扫表。这个地方有必要做分库分表吗?1-2亿申请记录?分了多少张表?如何基于用户id后两位分16张表?后两位直接取模、不均匀怎么办?为啥不直接用用户id取模16? > > 为啥 like %xx****不走索引?like xx%xxx走索引吗?为啥可以走? > > a,b都有索引,select * from table where a = xx order by b。走哪个索引? > > 介绍一个问题排查过程,GC问题。。。。。gc次数,dump,大对象。报警情况。Dump用什么工具看的?dump是如何获取到的?jmap、 > > 给seata提交过什么代码?seata 2.1的rocketmq事务消息方案,rocketmq回滚后,全局事务怎么回滚。这个方案相比AT有啥区别? > > Undo_log****存在性校验是干了啥? > > 介绍下seata各种模式的特点和适用场景?xa强一致性、at本地事务先提交、undo-log回滚,tcc空回滚、事务悬挂,saga长事务。什么情况只能用TCC不能AT?
题目解析
> 分布式锁如何实现的?redisson、自定义注解**+切面。要锁什么东西,怎么配置?spel表达式。怎么写 > > **为啥用redisson而不是用setnx**?超时时间、自动续期。Redisson自动续期实现原理?watchdog是咋实现的?定时是怎么实现的?** > > 加锁的时候,redis不可用了咋整?降级处理。
打开文档:✅Redisson的watchdog机制是怎么样的?
> 什么叫做幂等?想要实现幂等需要做什么?唯一识别号、状态机。查询接口怎么实现幂等? > > 如果请求中没有一个唯一的识别号怎么做幂等?表单提交没有幂等号怎么防止重复提交?
> 项目中解决like无法走索引问题,展开介绍下。扫表。这个地方有必要做分库分表吗?1-2亿申请记录?分了多少张表?如何基于用户id后两位分16张表?后两位直接取模、不均匀怎么办?为啥不直接用用户id取模16? > > 为啥 like %xx****不走索引?like xx%xxx走索引吗?为啥可以走? > > a,b都有索引,select * from table where a = xx order by b。走哪个索引?
📄 ✅a,b都有索引,select * from table where a = xx order by b。走哪个索引?
打开文档:✅a,b都有索引,select * from table where a = xx order by b。走哪个索引?
> 介绍一个问题排查过程,GC问题。。。。。gc次数,dump,大对象。报警情况。Dump用什么工具看的?dump是如何获取到的?jmap、
这种问题,一定不能上来就说你的排查过程,那样就像是背的,一定要从背景,问题的发现开始讲起来。
> 给seata提交过什么代码?seata 2.1的rocketmq事务消息方案,rocketmq回滚后,全局事务怎么回滚。这个方案相比AT有啥区别? > > Undo_log****存在性校验是干了啥? > > 介绍下seata各种模式的特点和适用场景?xa强一致性、at本地事务先提交、undo-log回滚,tcc空回滚、事务悬挂,saga长事务。什么情况只能用TCC不能AT?