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不好搞。时钟回拨问题。 ...

March 22, 2026 · 1 min · santu

2年985硕,直播业务,redis,kafka,

面试者背景 :::warning 2年985硕,直播业务,JAVA技术,redis,kafka, 直播什么业务,哪部分复杂一点?点赞**&**连麦事件、spring消费事件,顺序消息, Spring的事件和MQ****区别,各自有什么好处?Spring的事件默认是异步的吗?如何实现异步? 为什么用事件驱动的方案?好处是啥?异步通信、非阻塞, Kafka****如果消费失败了怎么办?应用挂了怎么办? 如何能避免丢消息问题?落表,如何设计这张消息表?eventid、state、body、eventType,failReason、times、lastExTime 如果用了消息表了,有序如何保证?消息表如何设计索引?事件id唯一索引、状态索引, 状态区分度不高加索引有用吗?event执行会用什么设计模式? 策略模式好处是啥,公共的逻辑如何处理?模板方法模式。 点赞是每一次都会发个事件吗?靠kafka消息合并、 连麦有什么特别的难点吗?消息的严格有序是如何保障的?发送到同一分区、单线程消费、 如果发生了重平衡,有序还能保障吗?重平衡会带来什么问题?stw、消息堆积、重复消费、 Kafka****的渐进式重平衡知道吗? 你们的连麦支持同时连麦?如何支持优先连麦?最多同时可以连多少人? 如果避免并发操作连多?redis记录连麦人数?为啥用redis可以解决并发问题?单线程 工作中有封装过一些公共的组件吗?SimpleDateFormat做日期转换? SDF****的线程安全问题知道吗。如何解决? 日志框架用的哪个?log4j,同步日志还是异步日志?你自己配置过log4j的配置文件吗? 看过哪些源码么?Spring、Spring的bean的初始化过程,实例化和初始化区别, Bean****实例化的入口的方法和类名知道么。 有什么情况会导致一个bean无法被初始化么?构造器注入&循环依赖,@Lazy Spring之前用的哪个版本?SpringBoot 3.0知道么?AOT编译,定义starter**,** 定义一个starter需要做什么?在starter里面如何做个开关控制bean的实例化? **Spring的事务机制了解么?编程式&**声明式,你觉得声明式事务有啥缺点。 声明式事务,事务失效了,可能有哪些情况?private调用、this调用为啥不生效?AOP、final、rollbackFor、数据库不支持、多线程会导致事务失效吗?为什么? Threadlocal****在哪些框架有应用?Spring、Mybatis有吗?全链路追踪框架 如何在线程池之间传递ThreadLocal?ITL、TTL,TTL的原理知道么? **有最近看过哪些框架、技术的新版本么?****JDK **新版本有啥新特性?虚拟线程。用了虚拟线程后还有必要用线程池吗?守护线程、 堆上还有很大内存,但是还是有频繁的fullgc,可能是什么原因?system.gc被调用、CMS搞不定了要用G1? ::: 题目解析 :::color4 Spring的事件和MQ****区别,各自有什么好处?Spring的事件默认是异步的吗?如何实现异步? 为什么用事件驱动的方案?好处是啥?异步通信、非阻塞, ::: ✅Spring Event和MQ有什么区别?各自适用场景是什么? ✅在Spring中如何使用Spring Event做事件驱动 :::color4 Kafka****如果消费失败了怎么办?应用挂了怎么办? 如何能避免丢消息问题?落表,如何设计这张消息表?eventid、state、body、eventType,failReason、times、lastExTime 如果用了消息表了,有序如何保证?消息表如何设计索引?事件id唯一索引、状态索引, ::: ✅Kafka如何保证消息不丢失? ✅为了避免丢消息问题需要落表,如何设计这张消息表? :::color4 状态区分度不高加索引有用吗?event执行会用什么设计模式? ::: ✅区分度不高的字段建索引一定没用吗? :::color4 策略模式好处是啥,公共的逻辑如何处理?模板方法模式。 点赞是每一次都会发个事件吗?靠kafka消息合并、 ::: ✅策略模式和if-else相比有什么好处? :::color4 连麦有什么特别的难点吗?消息的严格有序是如何保障的?发送到同一分区、单线程消费、 如果发生了重平衡,有序还能保障吗?重平衡会带来什么问题?stw、消息堆积、重复消费、 Kafka的渐进式重平衡知道吗? ::: ✅什么是Kafka的重平衡机制? ✅什么是Kafka的渐进式重平衡? :::color4 你们的连麦支持同时连麦?如何支持优先连麦?最多同时可以连多少人? 如果避免并发操作连多?redis记录连麦人数?为啥用redis可以解决并发问题?单线程 ::: ...

March 22, 2026 · 1 min · santu

2本,9年经验(6-7年服务端),停车管理系统

面试者背景 :::warning 2本,9年经验(6-7年服务端),停车管理系统 **停车管理系统干了多久?1年,管理****700+**停车场。系统是分布式的吗? 介绍下架构情况?接入层、网关、订单、支付、结算。 项目的难点是什么?数据一致性**(C),性能要求(A),如何保证CA****呢?最终一致性** 当前系统的性能要求是什么样的?入场性能要求更高,前置校验并发执行,策略模式、部分缓存, 高峰期QPS 400多,RT 1.5s, 当前支付方式都支持哪些?wx,alipay。如果要新增一种支付方式(比如ETC),需要哪些代码改动?设计方案、设计模式 如果极端的并发情况,比如ETC和手机支付同时发起,如何处理?订单主表、订单明细表, 结算系统介绍下?不需要分账。对账是谁和谁对? 如果一次付款包含积分和现金,结算这里是如何处理的? 涉及到营销打折么?没有营销账户出资,线下结算。 最终一致性都是通过MQ?有用过其他的一致性方案吗? 如何保证消息不丢?本地消息表、异步刷盘、 如果要做压测,怎么做?压测原因、压测过程,确定压测范围、准备压测数据**&脚本(预发、线上)****、执行压测,** 你最后一次压测的数据:QPS(600)、RT(tp99 1s)、持续时长、失败率、以及其他的系统指标。 **压测600没问题,上线后300就扛不住了,可能是什么原因?**冷启动(缓存预热、JIT优化、MQ堆积)、定时任务、全链路压测、外部系统影响、慢SQL(数据倾斜、数据堆积)、压测环境、其他接口QPS、其他基础设施? 对账是怎么做的?定时任务,拉支付订单数据,对比第三方渠道数据, 一天200万,靠定时任务对账?对比齐怎么处理?多次核对 分库分表是按照什么分的?时间+省份、全局ID、 ::: 题目解析 :::warning 项目的难点是什么?数据一致性**(C),性能要求(A),如何保证CA****呢?最终一致性** 当前系统的性能要求是什么样的?入场性能要求更高,前置校验并发执行,策略模式、部分缓存, ::: ✅什么是CAP理论,为什么不能同时满足? :::warning 如果极端的并发情况,比如ETC和手机支付同时发起,如何处理?订单主表、订单明细表, ::: ✅一个支付单,多个渠道同时支付成功了怎么办? :::warning 结算系统介绍下?不需要分账。对账是谁和谁对? 如果一次付款包含积分和现金,结算这里是如何处理的? 涉及到营销打折么?没有营销账户出资,线下结算。 ::: :::warning 如何保证消息不丢?本地消息表、异步刷盘、 ::: ✅RabbitMQ如何保证消息不丢 ✅RocketMQ如何保证消息不丢失? ✅Kafka如何保证消息不丢失? :::warning 如果要做压测,怎么做?压测原因、压测过程,确定压测范围、准备压测数据**&脚本(预发、线上)****、执行压测,** 你最后一次压测的数据:QPS(600)、RT(tp99 1s)、持续时长、失败率、以及其他的系统指标。 **压测600没问题,上线后300就扛不住了,可能是什么原因?**冷启动(缓存预热、JIT优化、MQ堆积)、定时任务、全链路压测、外部系统影响、慢SQL(数据倾斜、数据堆积)、压测环境、其他接口QPS、其他基础设施? ::: ✅什么是压测,怎么做压测? ✅压测600没问题,上线后300就扛不住了,可能是什么原因? :::warning 对账是怎么做的?定时任务,拉支付订单数据,对比第三方渠道数据, 一天200万,靠定时任务对账?对比齐怎么处理?多次核对 ::: ✅怎么做数据对账? :::warning 分库分表是按照什么分的?时间+省份、全局ID、 ::: ✅分表字段如何选择?

March 22, 2026 · 1 min · santu

3年经验,2本,物流调度系统,mq,mysql

面试者背景 :::warning 21年2本,Java开发,物流运输系统,物流调度,支付,运费计算,模板生成、运单,视频流、 项目的难点是什么?解决啥问题?觉得是难点原因是什么?技术挑战? 可以整体介绍下项目,多少模块,模块间关系是什么??对哪个模块最受。 物理信息处理模块的功能?如何选择最合适的承运商?报价表。异步线程的方案介绍下?信号量的作用?除了信号量还有别的方案吗?信号量的作用是什么? 支付是自己做的,还是对接第三方支付?不同的支付渠道的金额是什么?为啥一个用元、为啥一个用分?对接第三方支付的最终支付结果是如何获取的?回调接口。 如果回调丢了怎么办?多久轮询一次?1-3秒???轮询是如何实现的?扫订单表。有没有支付单表? 没有支付单表,怎么对账?支付明细上记录啥了?订单号、渠道、金额、状态、 有一笔支付单不付了,会不会一直轮询?定时关单如何实现的?假如让你实现,你怎么做?redis?rocketmq延迟队列?为啥选择用rocketmq的延迟队列?这个方案有缺点吗、 美团leaf生成订单号的方案介绍下。号段模式。步长是多少?什么是步长。号段相比雪花算法的好处是什么?号段模式有缺点吗?号段模式生成的单号是自增的吗? Xxl-job****做什么用了?分片任务是如何实现的? Mysql和oracle主要的区别是什么?mysql支持哪些存储引擎,innodb和myisam****区别? 啥叫聚簇索引?如果没有主键怎么办?用非聚簇索引的查询过程是怎么样的? **A****有索引,****where a = xxx and b =xxx 和 where b= xxx and a =xxx **有区别? A,b,c三个字段的联合索引,按照ab**、ac、bc查询走索引吗?** Mysql****如何实现分页查询、limit的原理知道吗 Hashmap是如何解决hash冲突的?二次hash**???hashmap的结果,数组****+**链表、红黑树。 Java中的stream了解么?用过哪些方法?map、filter、并行流。一个userList转成map如何实现?看过spring哪里源码?ioc?如何实现bean****的注入?spring中有哪些设计模式? 公司的代码管理工具?开发模式怎么样的?一次需求交付流程。 ::: 题目解析 :::color4 项目的难点是什么?解决啥问题?觉得是难点原因是什么?技术挑战? 可以整体介绍下项目,多少模块,模块间关系是什么??对哪个模块最受。 物理信息处理模块的功能?如何选择最合适的承运商?报价表。异步线程的方案介绍下?信号量的作用?除了信号量还有别的方案吗?信号量的作用是什么? ::: 你的项目有哪些难点&亮点? :::color4 支付是自己做的,还是对接第三方支付?不同的支付渠道的金额是什么?为啥一个用元、为啥一个用分?对接第三方支付的最终支付结果是如何获取的?回调接口。 如果回调丢了怎么办?多久轮询一次?1-3秒???轮询是如何实现的?扫订单表。有没有支付单表? 没有支付单表,怎么对账?支付明细上记录啥了?订单号、渠道、金额、状态、 有一笔支付单不付了,会不会一直轮询?定时关单如何实现的?假如让你实现,你怎么做?redis?rocketmq延迟队列?为啥选择用rocketmq的延迟队列?这个方案有缺点吗、 ::: ✅BigDecimal和Long表示金额哪个更合适,怎么选择? ✅订单到期关闭如何实现 ✅为什么不建议使用MQ实现订单到期关闭? :::color4 美团leaf生成订单号的方案介绍下。号段模式。步长是多少?什么是步长。号段相比雪花算法的好处是什么?号段模式有缺点吗?号段模式生成的单号是自增的吗? ::: ✅Leaf生成分布式ID的原理? :::color4 Xxl-job做什么用了?分片任务是如何实现的? ::: ✅xxl-job 支持分片任务吗?实现原理是什么? :::color4 Mysql和oracle主要的区别是什么?mysql支持哪些存储引擎,innodb和myisam****区别? 啥叫聚簇索引?如果没有主键怎么办?用非聚簇索引的查询过程是怎么样的? **A****有索引,****where a = xxx and b =xxx 和 where b= xxx and a =xxx **有区别? ...

March 22, 2026 · 1 min · santu

6年经验,资产后台,汽车金融(贷款)SaaS

面试者背景 :::warning 6年经验,资产后台,汽车金融(贷款)SaaS,对接第三方, SaaS****的多租户是咋实现的?租户id 负责了什么功能?销售中心、订单,工作流,流程编排,业务模块拆分, 流程编排优缺点介绍下**,事件驱动、基于activiti封装,流程编排好处是啥?可扩展性,优缺点吗****?** **节点如果业务流程有差异怎么办?**有了解过其他方式实现差异化问题的解决吗?插件化、扩展点? 流程执行到一半,恢复执行怎么实现的? **项目难点?**严格控制状态流程如何实现的?如何避免状态覆盖?乐观锁、 分布式事务Seata AT模式,AT出现脏读的原因是什么?AT的实现原理是什么? TCC和AT****有啥区别?代码侵入性、空回滚、事务悬挂,依赖事务, Redis扣库存,MySQL订单创建,如何拆成TCC**?** 空回滚**&悬挂问题,怎么解决。状态、业务id****、时间、** 资产平台多少数据量要做分库分表?70亿,如何做的分表?会员id,分了多少表,128表, 分表后的全局ID是怎么做的?雪花算法、Redis自增id,为啥要全局分布式ID**,每张表自增不行吗?** 为啥分表128,而不选择100呢?为啥用2的幂?二次分表、 数据平滑迁移的方案介绍下?迁移字段,读旧写旧**->读旧双写(旁路验证)->存量迁移->读新双写(旁路验证)->灰度切流->****读新写新,切流开关如何实现的?nacos配置的。**数据迁移过程中有遇到啥问题么? 数据库中加字段会不会锁表?online ddl, 数据量多会遇到啥问题?限流、多级缓存、 **发券每天增量有多少?券的核销率有多少?写接口幂等是怎么做的?会员****id+**券号, **update的顺序问题如何保证? ** 项目中的SQL调优介绍一下, ::: 题目解析 :::color4 SaaS的多租户是咋实现的?租户id ::: ✅SaaS系统中,多租户如何实现? :::color4 流程编排优缺点介绍下**,事件驱动、基于activiti封装,流程编排好处是啥?可扩展性,优缺点吗****?** **节点如果业务流程有差异怎么办?**有了解过其他方式实现差异化问题的解决吗?插件化、扩展点? 流程执行到一半,恢复执行怎么实现的? ::: ✅什么是流程引擎,请问流程引擎有什么优缺点? :::color4 项目难点?严格控制状态流程如何实现的?如何避免状态覆盖?乐观锁、 ::: ✅基于状态机+乐观锁解决订单支付和关单的并发问题 :::color4 分布式事务Seata AT模式,AT出现脏读的原因是什么?AT的实现原理是什么? TCC和AT有啥区别?代码侵入性、空回滚、事务悬挂,依赖事务, ::: ✅Seata的AT模式的实现原理 ✅Seata的AT模式会不会出现脏读?为什么? ✅TCC的空回滚和悬挂是什么?如何解决? ✅Seata的4种事务模式,各自适合的场景是什么? :::color4 分表后的全局ID是怎么做的?雪花算法、Redis自增id,为啥要全局分布式ID**,每张表自增不行吗?** 为啥分表128,而不选择100呢?为啥用2的幂?二次分表、 ::: ✅利用雪花算法+Redis 自增 ID,实现唯一订单号生成 ✅分库分表的数量为什么一般选择2的幂? :::color4 数据平滑迁移的方案介绍下?迁移字段,读旧写旧->读旧双写(旁路验证)->存量迁移->读新双写(旁路验证)->灰度切流->读新写新,切流开关如何实现的?nacos配置的。数据迁移过程中有遇到啥问题么? ::: ✅如何做平滑的数据迁移? :::color4 数据库中加字段会不会锁表?online ddl, ::: ✅什么是OnlineDDL :::color4 发券每天增量有多少?券的核销率有多少?写接口幂等是怎么做的?会员id+券号, ::: ...

March 22, 2026 · 1 min · santu

26届,985,12306项目,redis,多线程

面试者背景 :::warning 211本,985硕,设计模式,mq,中间件,26届。 12306****项目,登录,注册,增删改查,车票模块,车票购买,订单模块,支付, **哪个模块最熟悉?车票模块。车票查询,redis存储,城市,车站,查询列车信息,余票,购票,防止超卖、分布式锁(锁列车、锁细分)****+**令牌桶,bitmap? 车次、余票、城市等信息是如何存储的?杭州出发,经过上海,到达南京,如何存储的?存储的key会不会很大? 余票是如何存储的?key是什么?我要查一等座、二等座怎么办?一等座靠窗呢? 北京**->杭州->南京,如何实现杭州->南京票售出之后,其他的票都一起-1****的?** 防超卖是怎么做的?令牌桶是是如何实现的?自己实现的。介绍下实现思路。 余票数量是什么时候扣减的?令牌桶的意义是什么? 令牌桶和漏桶的区别是什么?你的场景用漏桶可以吗? JDK 17****用了啥新特性吗? Redis的集群模式。主从节点分别是什么?哨兵模式(主观、客观下线、ping/pong),集群模式(hash槽、crc16、)、16384是怎么来的?哪种可能会存在脑裂的情况?脑裂有哪些问题? 介绍下redis的持久化机制?AOF、RDB、区别?File在磁盘上吗?AOF的写回策略、 Redis****支持事务嘛?不能回滚的事务?过程中某个命令失败了咋办? 用的哪个redis客户端?Redisson,jedis, 布隆过滤器是啥?缺点是什么?误判、无法删除。怎么解决? Redis****除了用来作缓存,还能干啥?排名、消息队列、经纬度。 synchronized****是如何保证的原子性、有序性和可见性? 如果你要加锁,在syn和reentrantLock之间选哪个?为什么?偏向锁为啥别废弃、 线程池执行业务逻辑,如何实现3秒钟如果不返回就抛异常结束? 10个线程模拟赛马,实现功能:所有马ready之后一起开跑,全部到终点之后再宣布成绩? ::: 题目解析 :::color4 12306****项目,登录,注册,增删改查,车票模块,车票购买,订单模块,支付, **哪个模块最熟悉?车票模块。车票查询,redis存储,城市,车站,查询列车信息,余票,购票,防止超卖、分布式锁(锁列车、锁细分)****+**令牌桶,bitmap? 车次、余票、城市等信息是如何存储的?杭州出发,经过上海,到达南京,如何存储的?存储的key会不会很大? 余票是如何存储的?key是什么?我要查一等座、二等座怎么办?一等座靠窗呢? 北京->杭州->南京,如何实现杭州->南京票售出之后,其他的票都一起-1的? ::: 这部分是关于项目,这种项目可以讲,但是不要说所有模块都是你做的,要不然面试官可能会问你各种问题,你可能hold不住,建议是挑其中的重要模块介绍,把一个模块给他吃透了,而不是每个模块都模棱两可,一问细节就不知道了,那肯定就挂了。 :::color4 防超卖是怎么做的?令牌桶是是如何实现的?自己实现的。介绍下实现思路。 余票数量是什么时候扣减的?令牌桶的意义是什么? 令牌桶和漏桶的区别是什么?你的场景用漏桶可以吗? ::: ✅库存扣减如何避免超卖和少卖? ✅漏桶和令牌桶有啥区别? :::color4 JDK 17用了啥新特性吗? ::: 如果你写了JDK 17,那就要做好被问的准备,所以你要了解一点新特性,要不然被问了你不知道就很尴尬,要不然就老老实实写JDK8好了。 ✅JDK新版本中都有哪些新特性? :::color4 Redis****的集群模式。主从节点分别是什么?哨兵模式(主管、客观下线、ping/pong),集群模式(hash槽、crc16、)、16384是怎么来的?哪种可能会存在脑裂的情况?脑裂有哪些问题? 介绍下redis的持久化机制?AOF、RDB、区别?File在磁盘上吗?AOF的写回策略、 Redis****支持事务嘛?不能回滚的事务?过程中某个命令失败了咋办? 用的哪个redis客户端?Redisson,jedis, ::: ✅介绍一下Redis的集群模式? ✅什么是Redis的数据分片? ✅介绍下Redis集群的脑裂问题? ✅Redis 的事务机制是怎样的? ✅Redis的持久化机制是怎样的? ✅RDB和AOF的写回策略分别是什么? ✅Redisson和Jedis有啥区别?如何选择? :::color4 布隆过滤器是啥?缺点是什么?误判、无法删除。怎么解决? ::: ✅什么是布隆过滤器,实现原理是什么? ✅布隆过滤器有什么缺点,如何解决? :::color4 Redis除了用来作缓存,还能干啥?排名、消息队列、经纬度。 ::: ✅除了做缓存,Redis还能用来干什么? ...

March 22, 2026 · 1 min · santu

工作1年,大数据开发平台,seata贡献者

面试者背景 :::warning 今日面试者: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? ::: 题目解析 :::color4 分布式锁如何实现的?redisson、自定义注解**+**切面。要锁什么东西,怎么配置?spel表达式。怎么写 为啥用redisson而不是用setnx?超时时间、自动续期。Redisson自动续期实现原理?watchdog是咋实现的?定时是怎么实现的? 加锁的时候,redis不可用了咋整?降级处理。 ::: ✅分布式锁有几种实现方式? ✅Redis实现分布锁的时候,哪些问题需要考虑? ✅如何用Redisson实现分布式锁? ✅Redisson的watchdog机制是怎么样的? :::color4 什么叫做幂等?想要实现幂等需要做什么?唯一识别号、状态机。查询接口怎么实现幂等? 如果请求中没有一个唯一的识别号怎么做幂等?表单提交没有幂等号怎么防止重复提交? ::: ✅如何解决接口幂等的问题? :::color4 项目中解决like无法走索引问题,展开介绍下。扫表。这个地方有必要做分库分表吗?1-2亿申请记录?分了多少张表?如何基于用户id后两位分16张表?后两位直接取模、不均匀怎么办?为啥不直接用用户id取模16? 为啥** like %xx****不走索引?like xx%xxx走索引吗?为啥可以走?** a,b都有索引,select * from table where a = xx order by b。走哪个索引? ::: ✅MySQL中like的模糊查询如何优化 ✅索引失效的问题是如何排查的,有那些种情况? ✅a,b都有索引,select * from table where a = xx order by b。走哪个索引? ...

March 22, 2026 · 1 min · santu

工作8年,游戏中厂,Redis,分布式

面试者背景 :::warning 8年,中厂游戏,Java,go,spring,做过dbserver,游戏饰品商城(交易模块、第三方支付接入),压测系统(xml、protobuf、流程化配置、分布式压测,Prometheus、grafana), 如何实现的压测的并发数,场景化配置是如何实现的?作弊指令, **压测时关注哪些指标?p90大概多少ms?**100ms 游戏账号是如何维护的?为啥不用开源的方案比如jemeter? 用过哪些中间件?redis、mongodb、mq、mysql。redis和mongodb区别? Redis****什么地方用到了? 为啥mysql用B+树,mongodb为啥用B树,redis用跳表? 三种数据库该怎么选?一般是如何选择? Redis的事务和mysql****的事务区别? Redis****快的原因是什么?基于内存、单线程模型、多路复用,为啥单线程会更快? Redis的热key****问题遇到过吗?有什么问题吗?多级缓存、拆分。本地缓存不一致问题怎么办? 热key变成了大key怎么办?你觉得多大可以认为是大key? Redis的分布式锁,如何实现可重入?什么是可重入?如何避免解锁的时候把别人的锁解了?听说过redlock****吗? Lua脚本用过吗?在集群模式下使用lua****脚本有问题么?有办法解决吗? Zookeeper干什么用了?为啥zk可以用来做nameserver**?** Zookeeper的CP****体现在哪里?强一致性,查询的时候一定会不一样呢?不一致了怎么体现强一致性?A的牺牲体现在哪里? 写完1/2节点之后,如果超过1/2节点都挂了怎么办? Zk能用在什么场景下?zk的分布式锁和redis****的分布式锁区别是啥?性能、原理、一致性、 分布式锁,一致性和可用性哪个更重要?为啥市面上99%场景都用redis?数据库兜底, 分布式事务涉及过吗?介绍下TCC,你认为有必要做分布式事务吗?太重了, 不做分布式事务,怎么保证一致性呢? “为什么要限流,不应该服务好用户么?”,如何反驳?恶意流量、上下游 ::: 题目解析 :::color4 如何实现的压测的并发数,场景化配置是如何实现的?作弊指令, 压测时关注哪些指标?p90大概多少ms?100ms ::: ✅说下什么是p90,p95,P99? :::color4 用过哪些中间件?redis、mongodb、mq、mysql。redis和mongodb区别? Redis****什么地方用到了? 为啥mysql用B+树,mongodb为啥用B树,redis用跳表? 三种数据库该怎么选?一般是如何选择? Redis的事务和mysql的事务区别? ::: ✅Redis、MySQL和MongoDB的区别是什么,各自适用场景呢? ✅为什么MySQL用B+树,MongoDB用B树? ✅InnoDB为什么不用跳表,Redis为什么不用B+树? ✅Redis的事务和MySQL的事务区别? :::color4 Redis****快的原因是什么?基于内存、单线程模型、多路复用,为啥单线程会更快? Redis的热key****问题遇到过吗?有什么问题吗?多级缓存、拆分。本地缓存不一致问题怎么办? 热key变成了大key怎么办?你觉得多大可以认为是大key? ::: ✅Redis为什么这么快? ✅什么是热Key问题,如何解决热key问题 ✅什么是大Key问题,如何解决? :::color4 Redis的分布式锁,如何实现可重入?什么是可重入?如何避免解锁的时候把别人的锁解了?听说过redlock吗? ::: ✅什么是可重入锁,怎么实现可重入锁? ✅什么是RedLock,他解决了什么问题? :::color4 Lua脚本用过吗?在集群模式下使用lua脚本有问题么?有办法解决吗? ::: ✅Redis Cluster 中使用事务和 lua 有什么限制? :::color4 Zookeeper干什么用了?为啥zk可以用来做nameserver**?** Zookeeper的CP****体现在哪里?强一致性,查询的时候一定会不一样呢?不一致了怎么体现强一致性?A的牺牲体现在哪里? 写完1/2节点之后,如果超过1/2节点都挂了怎么办? Zk能用在什么场景下? ::: ✅Zookeeper的典型应用场景有哪些? ...

March 22, 2026 · 1 min · santu

工作3年,城市停车项目,保险理赔(财&人身)&电服业务

面试者背景 :::warning 20年毕业,软工本科,城市停车项目,保险理赔(财&人身)&电服业务, 介绍下理赔业务流程,客户报案(立案)、查勘、定损、理算、核赔、账单,收付 理赔的时候还没投保遇到过吗?如何处理?暂存是如何做的?报案记录。 整个理赔环节有用流程引擎之类的吗?工作流等?状态(码表)、状态机? 用户敏感信息的脱敏、加密是如何做的?日志打印有做脱敏吗?脱敏工具类是自研的吗?如果要做怎么做?自定义注解、脱敏规则。 数据加密后能做模糊查询吗?分词、内存 设计模式用过吗?介绍下。策略**+**模板,装饰器, 理赔这部分是一个单独应用还是多个微服务?服务间调用用Dubbo?feign? Dubbo和feign有啥区别?rpc vs http,为啥rpc快?他们的负载均衡是如何做的?ribbon,ribbon是客户端还是服务端的。后面ribbon****不支持咋办?限流做过吗? 当给第三方提供接口调用,需要注意哪些事情?限流(zset限流)、鉴权、加解密、合法性、幂等。 加解密是怎么做的?参数转换为啥用groovy?好处是什么?如何保证接口调用拿到的数据是完整的?中间有没有人篡改过?加密**&解密、加签&**验签做的事情一样吗? Zset实现滑动窗口是如何做的?zcard、zremrangebyscore?负无穷是如何表示的?阈值是怎么配置的?配置中心吗?存在redis****中的阈值会不会被删掉?删掉再查库,阈值为啥不做本地缓存? 设计redis的key和value上,有哪些原则?命名规则、大小限制、避免大key、 大key会有啥问题呢?那如果有大key了咋办呢?拆分。拆分后查询怎么办?用cluster分片可以吗? 集群模式的原理?相比其他部署方式好处是什么?性能、 SQL****调优做过吗,介绍下。索引、长事务。长事务是如何优化的?事务是如何实现的?声明式事务、 事务失效遇到过吗?没走代理、异常处理、多线程事务能生效吗?为啥。 如何让子线程拿到主线程的数据?用threadlocal的时候有啥需要注意的嘛?remove,为啥? Zk****创建节点如何保证节点唯一性?zk的使用场景?注册中心、分布式锁? zk是ap是cp的?为啥CAP中AC不能同时满足?哪些系统是AP的?nacos注册中心?redis为啥是AP的?如果是同步复制就AP****了吗? 如果让你实现一个消息队列,你会考虑哪些问题?基本架构、推拉、持久化、ack策略。如何避免消息重投? ::: 题目解析 :::color4 用户敏感信息的脱敏、加密是如何做的?日志打印有做脱敏吗?脱敏工具类是自研的吗?如果要做怎么做?自定义注解、脱敏规则。 数据加密后能做模糊查询吗?分词、内存 ::: ✅如何实现敏感词过滤? ✅数据库加密后怎么做模糊查询? :::color4 设计模式用过吗?介绍下。策略+模板,装饰器, ::: ✅你在工作中是如何使用设计模式的? :::color4 理赔这部分是一个单独应用还是多个微服务?服务间调用用Dubbo?feign? Dubbo和feign有啥区别?rpc vs http,为啥rpc快?他们的负载均衡是如何做的?ribbon,ribbon是客户端还是服务端的。后面ribbon不支持咋办?限流做过吗? ::: ✅什么是RPC,和HTTP有什么区别? ✅LoadBalancer和Ribbon的区别是什么?为什么用他替代Ribbon? :::color4 当给第三方提供接口调用,需要注意哪些事情?限流(zset限流)、鉴权、加解密、合法性、幂等。 加解密是怎么做的?参数转换为啥用groovy?好处是什么?如何保证接口调用拿到的数据是完整的?中间有没有人篡改过?加密&解密、加签&验签做的事情一样吗? ::: ✅和其他公司做数据交互时,有什么需要注意的? :::color4 Zset实现滑动窗口是如何做的?zcard、zremrangebyscore?负无穷是如何表示的?阈值是怎么配置的?配置中心吗?存在redis中的阈值会不会被删掉?删掉再查库,阈值为啥不做本地缓存? ::: ✅如何基于Redis实现滑动窗口限流? :::color4 设计redis的key和value上,有哪些原则?命名规则、大小限制、避免大key、 大key会有啥问题呢?那如果有大key了咋办呢?拆分。拆分后查询怎么办?用cluster分片可以吗? ::: ✅Redis的Key和Value的设计原则有哪些? ✅什么是大Key问题,如何解决? :::color4 集群模式的原理?相比其他部署方式好处是什么?性能、 ::: ✅介绍一下Redis的集群模式? :::color4 SQL****调优做过吗,介绍下。索引、长事务。长事务是如何优化的?事务是如何实现的?声明式事务、 事务失效遇到过吗?没走代理、异常处理、多线程事务能生效吗?为啥。 ::: ✅你是如何进行SQL调优的? :::color4 如何让子线程拿到主线程的数据?用threadlocal的时候有啥需要注意的嘛?remove,为啥? ...

March 22, 2026 · 1 min · santu

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

面试者背景 :::warning 今日面试者:6年经验,211本,spring技术栈,redis,sql调优,数据迁移,rocketmq,服务重构微服务,2手平台,卖家业务,结算,售后,大商家, 大商家有什么特点?库存之间做了系统对接吗?商品发布方式?接口对接 接口的鉴权,防刷是怎么做的?没做。。。限流做了么?如果要做怎么做? 项目中有哪些亮点?架构的演变,重复能力建设,通用能力抽象领域服务(物流、售后),为啥这两个服务可以单独抽象出来?售后产生的物流信息是属于物流域还是售后域?如何决定的? 抽象出领域之后,还有一些业务定制内容(比如售后XX天,物流分上门或者买家寄)如何实现? 状态机**+**事件做物品状态更新?from、to,cas。状态机自己实现的?方法是怎么样的实现?如何判断状态是否可以流转,具体如何做的状态控制?Spring的状态机有了解过吗? 分库分表做过吗?分表是水平的还是垂直分的?为了解决啥问题?按照月份分表。跨月查询怎么查。 SQL****调优介绍下,做了啥?宽表拆分成主表和扩展表,为啥要这么做?join比宽表慢怎么办? 索引优化做了哪些优化?加联合索引会考虑哪些问题?product、number、status哪个放左边为啥?为啥区分度更高的放前面? 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、number、status哪个放左边为啥?为啥区分度更高的放前面? SQL语句:where product= and number = and status = ,联合索引中,把number或者status放前面有区别吗? ::: ✅为什么大厂不建议使用多表join? ✅什么是最左前缀匹配?为什么要遵守? ✅where条件的顺序影响使用索引吗? :::color4 微服务的拆分,有哪些原则呢?通用能力、 ...

March 22, 2026 · 1 min · santu

留言给博主