Hi!¶
约 506 个字 预计阅读时间 2 分钟
Self-Knowing
命运教不会你的东西,会一遍遍给你机会学会。
Slide project
编程语言: Go
技术栈:Gin、MySQL、Redis、Docker、JWT、Prometheus
基于 DDD 架构的高并发社交平台,实现用户注册、登录、文章发布与浏览、互动、热点榜单等功能
- 用户管理:
- 注册/登录,用户信息管理
- OAuth2集成(微信登录)
- 短信模块:
- 手机验证码登录
- 限流(ratelimit)和故障转移(failover)
- 文章模块
- 文章的创建与编辑,发表,删除,查询
- 文章的三态模型「草稿库 → 编辑库 → 线上库」 与 五种状态的转换。
- 缓存方面的优化
- 榜单模块
- 互动:点赞、收藏、评论
- 采用定时任务计算 score,利用数据结构维护榜单
编程语言:Go
技术栈: Go, Bitcask, 多级锁机制
核心基于 Bitcask 存储模型的 KV 存储引擎, 使用 Go 语言开发,旨在提供高吞吐量和低读写放大的持久化存储解决方案
-
设计了抽象的内存索引接口,提供多种内存索引结构,高效、快速数据访问
-
实现了数据的持久化,确保数据的可靠性和可恢复性
-
采用锁机制来保证内存索引并发访问的安全性。为了提升高并发场景下的性能,内存索引 锁粒度优化
-
实现了 Hint 文件内存映射加载技术,索引重建时间从 180s 优化至 18.2s
-
实现了 WriteBatch 原子写,通过引入全局递增的序列号和事务完成标识,保证 数据一致性
-
基准测试:进行了针对 Put、Get、Delete 等基本操作的基准测试,评估系统性能
页面总数:66
总字数:149680
代码块行数:2719
Last update:
July 5, 2025
Created: November 19, 2023
Created: November 19, 2023