文章列表

高并发场景中,乐观锁和悲观锁哪个更适合?

高并发场景中,乐观锁和悲观锁哪个更适合?

高并发场景下乐观锁和悲观锁怎么选?本文深度解析两者底层原理与适用场景。核心结论:写冲突低用乐观锁(CAS或版本号),冲突高用悲观锁(FOR UPDATE),秒杀扣库存等超高并发热点写需结合Redis预扣与分桶方案。助你彻底搞懂锁选型与面试实战,轻松应对高并发架构设计。


犬小哈2026/8/1Java面试八股文
ShardingJDBC 有哪些分片策略,你用的哪个?

ShardingJDBC 有哪些分片策略,你用的哪个?

ShardingJDBC 分片策略怎么选?本文深度解析行表达式、标准、复合、Hint及不分片5大核心分片策略与分片算法的底层原理。结合订单系统实战经验,教你如何精准选择分片键,避免全路由广播,轻松应对面试追问与项目选型。


犬小哈2026/8/1Java面试八股文
分库分表后,怎么设计,可以降低数据迁移的难度?

分库分表后,怎么设计,可以降低数据迁移的难度?

分库分表后如何平滑扩容与数据迁移?本文深度解析降低迁移难度的核心方案:设计阶段遵循一次分够、选择稳定分片键、应用虚拟槽或一致性哈希预留扩容余地;迁移阶段采用双写、对账与灰度切流,保障数据一致性,实现不停机平滑扩容,轻松应对大厂面试。


犬小哈2026/8/1Java面试八股文
分库分表中,如何预估需要分多少个库?多少张表?

分库分表中,如何预估需要分多少个库?多少张表?

分库分表数量怎么预估?本文提供一套实用的容量规划公式:按未来3-5年数据量÷单表上限(1000万)估算分表数,按系统峰值并发÷单库TPS(1500)估算分库数,且结果需向上取2的幂以降低扩容成本。深入解析分片数计算逻辑与避坑指南,助你搞定面试与生产架构设计。


犬小哈2026/7/28Java面试八股文
分库分表之后怎么进行 Join 操作?

分库分表之后怎么进行 Join 操作?

分库分表后怎么做跨库Join查询?本文深度解析绑定表、全局表、字段冗余、应用层组装与数据同步ES等6大主流解决方案。结合ShardingSphere实战与架构权衡,讲透跨库关联查询的代价与选型决策,助你轻松应对面试与真实业务场景!


犬小哈2026/7/28Java面试八股文
分库分表的取模算法策略,怎么避免数据倾斜?

分库分表的取模算法策略,怎么避免数据倾斜?

分库分表取模分片看似数学上均匀,但常因分片键分布不均、扩容方式不当或业务热点引发数据倾斜。本文深度解析倾斜来源,并从选对分片键、优化Hash算法(如MD5/MurmurHash)、2的幂翻倍扩容(或一致性哈希)、热点数据特殊治理等四个维度,提供避免数据倾斜的核心策略与实战经验,助你轻松应对面试与生产难题。


犬小哈2026/7/28Java面试八股文