分类 我的实验室,记录一些探索经验。 下的文章

bjmayor发布于2025-11-03

百万并发抽奖实现:从 SQL-only 到 Redis + Lua 的抽奖优化实战

Day 4:从 SQL-only 到 Redis + Lua 的抽奖优化实战

本文记录今天将抽奖核心从“纯数据库事务”升级为“Redis + Lua 原子扣减 + 异步落库”的过程、优化点、踩坑与结果。

目标与背景

  • 目标:在保证功能正确与可观测的前提下,提高单机并发与整体吞吐,缓解数据库热点与锁竞争。
  • 背景:V1 方案所有请求走 PostgreSQL 事务,存在连接/锁瓶颈;V2 引入 Redis 作为热点写入层与限流去重层。

阅读全文»

bjmayor发布于2025-11-02

百万并发抽奖基础版本实现-rust+postgresql

今天是第三天实验这个百万并发抽奖实现。
纯postgresql+rust实现结果:

这次压测的吞吐量约为 3951 QPS(10000 次请求在 2.53s 内完成 = 3951.68 QPS)。延迟分位说明:P50≈63.5ms、P95≈71.3ms、P99≈78.0ms,平均≈
63.9ms,代表单次抽奖接口的响应时延分布。若要更接近真实上限,建议服务和压测都用 release 模式并关闭调试日志后再测。

阅读全文»

bjmayor发布于2025-10-29

百万并发抽奖系统细节讨论

今天是第二天和 AI 聊抽奖系统。
主要集中下面几个话题:

  1. 具体的概率算法实现方式(权重法 vs 区间法)
  2. 前端转盘的动画实现方案(CSS动画 vs Canvas)
  3. 管理后台免登录实现
  4. 错误码和异常处理规范
  5. 是否需要连接池监控和慢查询日志

编码只应该占据项目时间的20%,也就是有了ai, 你也应该和ai讨论各种细节。最后再让ai写代码,这样写出来的才是符合你预期的代码。

阅读全文»

bjmayor发布于2025-10-26

开源第一天-starup

今天开始做开源项目。
一方面因为自己做的事情我感觉没啥挑战,锻炼下技术能力,基于场景深挖下。
另一方面是近些年的项目经历实在过于单薄,感觉拿不出手。除了全栈,多面手,就没亮点了。

考虑到我近些年的经验主要是 web开发。
所以我预计做 4 个项目,慢慢做。会写下自己的思考过程,以及实现过程中遇到的坑,还有一些反思。

因为是验证想法和达到目的,所以主要是vibe coding.

我有github copliot, claude code, droid, iflow cli.
主要编程工具是 zed, vscode.
考虑到主要是验证自己的想法,所以就白嫖iflow cli,也行,国内的模型。vscode review代码。最终就是vscode+ iflow cli extention.

项目 关键主题 技术类型
1. 高并发抽奖系统 缓存 + 异步 + 压测 极限性能架构
2. AI内容平台 调度 + 自动化 + AI能力 智能系统架构
3. WebSocket系统 实时通信 + 分布式消息 实时体验架构
4. 🛒 电商核心系统 数据一致性 + 事务保真 企业级业务架构

day1: 建仓库:高并发抽奖系统
技术选型:
我个人会的技术栈是php/python/golang/rust
rust一直没用起来,所以我打算玩下rust后端, vue 做前端。
基于我之前阅读过极客课程,《如何做秒杀系统》。印象中的思想就是 层层过滤。
抽奖也是一样的, 你能不能抽中其实是个概率问题。
那么从性能优化的角度思考,我可以把概率计算放到每个环节。

阅读全文»