摘要: .NET 异步里最常见的隐性炸弹:.Result/.Wait 在老框架容易死锁,在 ASP.NET Core 更常见线程池饥饿。 阅读全文
posted @ 2026-03-17 12:54 ryan-deng 阅读(169) 评论(2) 推荐(1)
摘要: 压测没问题,上线却慢成一大坨?这篇用 TagWith + OpenTelemetry + 执行计划,带你 30 分钟定位 EF Core 慢查询真凶。 阅读全文
posted @ 2026-03-16 15:32 ryan-deng 阅读(146) 评论(0) 推荐(4)
摘要: 并发冲突是 EF Core 里最容易被忽视、出了事又最难排查的问题之一。这篇文章聊聊它的机制、怎么配置乐观锁、冲突异常怎么处理。 问题背景 真实场景:电商平台秒杀活动,同一件商品被多个请求并发扣减库存。业务日志里一切正常,但库存对不上——扣了 100 件,实际库存只减少了 60 件。 排查后发现: 阅读全文
posted @ 2026-03-13 16:24 ryan-deng 阅读(165) 评论(0) 推荐(1)
摘要: 这篇文章讨论一个问题:一次写入请求从实体变更到数据库落盘,中间到底发生了什么,哪里最容易慢,以及应该怎么定位。 问题背景 真实场景:订单系统在白天吞吐稳定,凌晨高峰出现周期性尖峰。接口平均耗时变化不大,但 P95 从 80ms 抬到 420ms,数据库 CPU 也出现波峰。 排查后发现: 应用层每次 阅读全文
posted @ 2026-03-12 15:55 ryan-deng 阅读(161) 评论(0) 推荐(0)
摘要: 这篇文章不讨论完整身份平台建设,只聚焦 ASP.NET Core 里最常见、也最容易出错的一段:JWT 认证、Policy 授权,以及资源级权限边界该怎么落到代码里。 问题背景 真实现场:一个后台退款接口原本只允许财务角色调用,但线上排查发现,普通运营账号只要拿到有效 token,也能调用成功。 根 阅读全文
posted @ 2026-03-11 13:57 ryan-deng 阅读(292) 评论(1) 推荐(6)
摘要: 接口慢,不一定是数据库慢。很多系统在高峰期的核心问题,是异步链路写法导致线程池被慢慢耗空。 这类问题最麻烦的地方在于: CPU 不一定打满 错误日志不一定明显 本地压测可能复现不出来 这篇文章围绕一个目标展开:让异步代码在高并发下“稳态运行”,而不是“平时很快,高峰崩盘”。 1. 问题背景:为什么会 阅读全文
posted @ 2026-03-10 08:46 ryan-deng 阅读(29) 评论(0) 推荐(0)
摘要: 很多团队把 EF Core 的性能问题归因于“ORM 天生慢”,但线上真实情况通常是: 查询写法对 SQL 形态不敏感 默认跟踪被滥用 图省事一次 Include 到底 结果是接口能跑,但高峰时段 P95 持续抬高,数据库 CPU 和网络带宽一起被拖上去。 这篇文章聚焦一个目标:把 EF Core 阅读全文
posted @ 2026-03-09 11:21 ryan-deng 阅读(20) 评论(0) 推荐(0)
摘要: 很多团队做性能优化时,第一反应是改 SQL、加缓存、扩机器。结果接口还是慢,而且慢得不稳定。 这类问题里,有一部分根因并不在业务代码,而在请求进入业务之前就已经产生了: 中间件顺序、重复序列化、过重日志、异常处理位置不当,都会把每个请求的固定成本悄悄抬高。 这篇文章我们不讲抽象概念,直接从一个真实工 阅读全文
posted @ 2026-03-09 11:21 ryan-deng 阅读(168) 评论(0) 推荐(1)
摘要: SonarQube 是一个开源的代码质量管理系统,可以支持很多的开发语言。文本主要通过详细的操作步骤演示如何在 rider 中引入代码扫描,通过 SonarQube 自建服务,统一团队代码风格 阅读全文
posted @ 2026-02-05 11:46 ryan-deng 阅读(23) 评论(0) 推荐(0)
摘要: 当你的系统从3台服务器扩展到100台,如何保证数据不会大规模迁移?一致性哈希给你答案。 🤔 从一个问题说起 假设你开了一家外卖店,有 3 个送餐员。每次来订单,你要决定让谁去送。 简单办法:订单号除以 3,余数是 0 给 1 号,余数是 1 给 2 号,余数是 2 给 3 号。 int serve 阅读全文
posted @ 2026-02-03 11:54 ryan-deng 阅读(22) 评论(0) 推荐(0)