欢迎来到我的博客

  • 你好,我是宋惠龙,现作为一名软件工程师在北京搬砖。
  • 我过往经历以及感兴趣的方向包括不限于web后端/数据库/系统设计。
  • 写博客只是为了记录想法、案例、笔记,当然我也在逐步提升写博客的「技术」。
  • 👏🏻👏🏻👏🏻再次欢迎!

迅速熟悉一摊子事:顺藤摸瓜

如何迅速熟悉一摊子新的事?我目前总结、实践下来就四个字:顺藤摸瓜。 ...

March 31, 2024 · 1 min · DragonSong
锁定互斥性、幂等性正确姿势

使用分布式锁解决接口互斥性、幂等性问题两例

针对近期处理的两例并发场景引发的「互斥性」「幂等性」问题进行过程分析、输出系统方案。 ...

March 20, 2024 · 4 min · DragonSong
本文案例涉及git操作

gitlab MR被revert后,功能分支无法再次merge到主干分支,怎么办?

需求分支首先通过MR合并到了master分支,部署后发现有问题,于是回滚代码,操作了MR处的revert,后面修复了问题,使用原功能分支提新的MR时,发现变更处是空的,本文来解决此类无法合并情形的问题。 ...

March 12, 2024 · 3 min · DragonSong
并发异常涉及流程

排查mybatis ognl解析参数值并发设置字段访问性报错问题一例

年后负责一个比较老的服务,报警不少,今天排查的这个问题也只有在老版本MyBatis下才有机会复现,值此宝贵的线上问题机会,记录一番。 低版本MyBatis中,在高并发情况下,有概率遇到解析private内部类集合解析抛错的情况。 我通过分析异常栈+搜索+分析源码的方式解决了此问题。 ...

March 1, 2024 · 4 min · DragonSong
并发修改异常涉及流程

排查 ConcurrentModificationException 问题一例

排查一则生产环境报 ConcurrentModificationException 的问题。 在相对复杂的工业代码中(绕来绕去,不是简单的一个函数调用),排查「简单问题」也不是一件简单的事。 ...

February 21, 2024 · 3 min · DragonSong
IO高性能常用手段:NIO、多路复用、池化、异步

关于IO我所知道的一切都在这里了

本文尝试归纳整理作者所了解的IO基础模式、IO架构通用模式,尽可能一篇文章提供IO相关的全景图以及方案优化对比。 ...

February 6, 2024 · 6 min · DragonSong

Linux零拷贝图例一览

此文统一整理操作系统零拷贝相关图例。 ...

December 15, 2023 · 1 min · DragonSong

mysql in 查询索引失效问题一例

排查了一则MySQL中in查询传入270个入参则 索引失效 的问题,本文记录分析与解决的过程。 ...

December 1, 2023 · 2 min · DragonSong
求解连续30天有库存的酒店产品价格和

算法案例:计算酒店月租价

本文记录做酒店业务系统开发时遇到的算法实例:计算酒店产品月租价。 ...

November 22, 2023 · 3 min · DragonSong
重构后的代码结构

使用策略模式优化支付回调代码一例

本文使用策略模式和模板方法模式来优化处理支付回调的代码结构,记录设计模式应用实例。 ...

October 18, 2023 · 3 min · DragonSong
元空间从泄漏转为稳定

aviator动态创建类过多导致元空间内存泄漏 问题一例

同事排查处理了一则aviator使用不当导致元空间内存泄漏的问题,个人觉得是一则很有价值的案例,因此观摩学习一波。 使用aviator不启用表达式缓存的情况下,会分别在编译、解析阶段根据时间戳使用asm动态生成class,生成过多class就会撑爆元空间,也就是内存泄漏。 除此之外,在分析过程中还发现了aviator低版本的另一个泄漏问题,非常适合用来巩固jvm相关知识。 ...

September 15, 2023 · 6 min · DragonSong

mysql datetime 秒精度问题一例

排查了一则MySQL中datetime写入 诡异进位 的问题,通过查阅官方文档的方式找到了问题原因。顺带巩固下基础知识。 ...

August 10, 2023 · 2 min · DragonSong

troubleshooting mybatis-plus parsing whitespaces in SQL

Since 3.4.1 (less or more), mybatis-plus bring in a bug: when parsing extra whitespaces in SQL, it throws net.sf.jsqlparser.parser.ParseException. I solved the problem by finding relevant discussions and resources to gain insights into the issue. ...

August 7, 2023 · 1 min · DragonSong

LeetCode 2544. Alternating Digit Sum

Find mathematical patterns through observing test cases. ...

August 5, 2023 · 1 min · DragonSong

使用jackson反序列化未忽略未知字段时报错 `UnrecognizedPropertyException` 问题一例

踩坑,Redis缓存使用Jackson2JsonRedisSerializer管理序列化,未设置disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES),上线中新代码写入了新的缓存字段结构,旧代码读到新结构报错UnrecognizedPropertyException。 ...

June 27, 2023 · 2 min · DragonSong

LC 2671. 频率跟踪器

LC 2671. 频率跟踪器,一道中规中矩的数据结构题目,解法平平无奇,却让我学到了「阅读理解」的重要性。 ...

May 12, 2023 · 3 min · DragonSong

踩坑:macOS默认浏览器设置后跳转有误

记录一则macOS设置默认浏览器失效的例子。通过尝试解决了问题。 ...

March 31, 2023 · 1 min · DragonSong

踩坑更改了javaagent路径导致idea无法启动问题一例

踩坑,新机器装开发环境,因手动变更了已配置好的idea启动依赖的agent路径,导致jetbrains全系产品无法启动。 ...

March 24, 2023 · 2 min · DragonSong

spring-data-redis版本过低,导致并发获取数据为null问题一例

踩坑,spring-data-redis版本过低,导致并发获取数据为null问题一例,试用phind.comAI 搜索,快速定位到了问题原因。 ...

February 27, 2023 · 3 min · DragonSong

混部redis写文件竞态严重导致实例获取不到连接问题一例

踩坑redis混部,导致AOF写磁盘过多,导致影响其他实例。通过与sre协作、分析日志,解决了问题。 ...

November 29, 2022 · 3 min · DragonSong