基于.NetCore开发 StarBlog 番外篇 (1) 全新的访问统计功能,异步队列,分库存储 - 程序设计实验室
💡
原文中文,约7500字,阅读约需18分钟。
📝
内容提要
本文介绍了StarBlog的新访问统计功能,采用队列和后台任务设计,解决了旧实现的性能和数据库大小问题。使用EFCore进行数据库操作,支持分库,并优化了日志记录和查询功能。
🎯
关键要点
- 本文介绍了StarBlog的新访问统计功能,采用队列和后台任务设计。
- 旧实现的访问统计功能存在性能影响和数据库过大的问题。
- 新的实现通过队列暂存访问日志,后台任务定时写入数据库,避免影响访问速度。
- 使用EFCore作为ORM,支持分库操作,优化了日志记录和查询功能。
- 引入了ConcurrentQueue实现线程安全的日志队列,使用事务处理批量写入数据库。
- 后台任务使用BackgroundService,确保在多线程环境中正确获取数据库上下文。
- 分库设计是为了减少访问日志对数据库备份的影响,使用EFCore单独操作新的数据库。
- 重构服务以适应EFCore,调整了相关服务的实现。
- 下一个功能将与备份有关,计划升级项目的SDK版本。
➡️