基于.NetCore开发 StarBlog 番外篇 (1) 全新的访问统计功能,异步队列,分库存储 - 程序设计实验室

💡 原文中文,约7500字,阅读约需18分钟。
📝

内容提要

本文介绍了StarBlog的新访问统计功能,采用队列和后台任务设计,解决了旧实现的性能和数据库大小问题。使用EFCore进行数据库操作,支持分库,并优化了日志记录和查询功能。

🎯

关键要点

  • 本文介绍了StarBlog的新访问统计功能,采用队列和后台任务设计。
  • 旧实现的访问统计功能存在性能影响和数据库过大的问题。
  • 新的实现通过队列暂存访问日志,后台任务定时写入数据库,避免影响访问速度。
  • 使用EFCore作为ORM,支持分库操作,优化了日志记录和查询功能。
  • 引入了ConcurrentQueue实现线程安全的日志队列,使用事务处理批量写入数据库。
  • 后台任务使用BackgroundService,确保在多线程环境中正确获取数据库上下文。
  • 分库设计是为了减少访问日志对数据库备份的影响,使用EFCore单独操作新的数据库。
  • 重构服务以适应EFCore,调整了相关服务的实现。
  • 下一个功能将与备份有关,计划升级项目的SDK版本。
➡️

继续阅读