自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 有 MySQL 为什么还要有 MongoDB?游戏业务的主力数据库

文章摘要:本文探讨了游戏平台海量用户数据的存储方案。传统MySQL存在字段冗余、扩展困难等问题,而MongoDB的文档型结构(BSON格式)能灵活存储不同字段的玩家数据。MongoDB采用变种B+树索引和写时复制机制提升并发性能,通过内存缓存、预写日志和检查点机制保障数据安全。其灵活的文档模型特别适合游戏场景中频繁变更的数据结构,无需复杂迁移即可支持字段扩展,是处理游戏复杂数据的理想选择。(149字)

2025-08-23 15:56:13 1041

原创 RPC接口超时怎么解决?

《RPC超时问题分析与优化实践》摘要 本文针对微服务架构中常见的RPC超时问题展开分析。从原理层面阐述了超时重试机制的双面性:既能提升系统容错能力,又可能导致重复请求、性能下降甚至雪崩效应。作者提出了合理的超时设置策略:基于依赖服务的TP99响应时间加50%作为基准,区分可重试服务并确保幂等性,控制重试次数(通常2-3次)。在解决方案部分,分享了数据库优化、第三方服务调优、中间件配置及代码改造等实战经验,特别展示了通过CompletableFuture实现异步编排的代码优化案例,将串行查询改造为并行执行,有

2025-08-07 00:37:42 1091 1

原创 解决MYSQL间隙锁引起的死锁

本文分析了MySQL InnoDB在高并发场景下因间隙锁导致的死锁问题。通过一个典型的"先查询后插入"业务场景,详细解释了死锁产生的原因:多个事务同时持有间隙锁并试图升级为行锁时发生的互斥等待。提出了两种解决方案:1)使用Redis分布式锁替代悲观锁;2)改为"先插入后查询"模式,利用INSERT IGNORE避免锁冲突。文章还总结了预防死锁的最佳实践,包括固定访问顺序、避免不必要更新、使用主键操作、减少事务长度及合理设置隔离级别等。这些方法能有效降低死锁风险,提高系

2025-08-05 17:07:24 1007

原创 MySQL 间隙锁导致的死锁!全链路实战排查!

摘要: 在高并发银币消费场景中,MySQL数据库出现"connection holder is null"异常及连接池耗尽问题。根本原因是Druid连接池配置与间隙锁(Gap Lock)共同作用导致的死锁连锁反应。当并发查询不存在的用户记录时,InnoDB的REPEATABLE-READ隔离级别会生成间隙锁,而后续插入操作需要将间隙锁升级为记录锁时,多个事务相互等待形成死锁循环。这种死锁会长时间占用数据库连接,最终导致连接池资源耗尽。解决方案建议采用分布式锁替代数据库层面的并发控制,在业

2025-08-05 00:43:32 843 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除