时间:2023-04-28 12:07:18 点击次数:16
个人博客站项目源码,高性能低占用的博客系统,这也许是我写过的性能最高的web项目了。仅1MB的代码量!目前日均处理请求数80-300w次,同时在线活跃用户数30-100人,数据量累计已达到100多万条,数据库+Redis+网站主程序同时运行在一台2核4GB的机器上,浏览器页面请求秒级响应,CPU平均使用率控制在20%左右。
操作系统:Windows 10 2104
IDE:Visual Studio 2019 v16.10
数据库:SQL Server 2017/MySQL 8.0
Redis:redis-server-windows 3.2
运行时:必须是.NET 5操作系统:Windows Server 2019
数据库:MySQL 8.0
Redis:redis-server-windows 3.2
运行时:.NET 5
服务器配置:2核+8GB+1000M
承载流量:单日请求量平均600w左右,单日带宽1TB左右依赖注入容器:.NET Core自带的+Autofac,autofac主要负责批量注入和属性注入;
实体映射框架:automapper 9.0;
缓存框架:CacheManager统一管理网站的热数据,如Session、内存缓存
EFCoreSecondLevelCacheInterceptor负责管理EF Core的二级缓存;
定时任务:hangfire统一管理定时任务,包含友链回链检查、文章定时发布、访客统计、搜索热词统计、Lucene库刷新等任务;
Websocket:Blazor进行流推送实现服务器硬件健康状态的实时监控;
硬件检测:Masuit.Tools封装的硬件检测功能;
全文检索:Masuit.LuceneEFCore.SearchEngine基于http://http://Lucene.Net 4.8实现的全文检索中间件;
中文分词:结巴分词结合本地词库实现中文分词;
断点下载:Masuit.Tools封装的断点续传功能;
Redis:CSRedis负责Redis的读写操作;
文件压缩:Masuit.Tools封装的zip文件压缩功能;
Html字符串操作:htmldiff.net-core实现文章版本的内容对比,HtmlAgilityPack实现html字符串的“DOM”操作,主要是用于提取img标签,HtmlSanitizer实现表单的html代码的仿XSS处理;
图床:支持多个图床的上传:gitee、github、gitlab;
拦截器:授权拦截器、请求拦截器负责网站全局流量的拦截和清洗、防火墙拦截器负责拦截网站自带防火墙规则的请求流量、异常拦截器、url重定向重写拦截器,主要用于将http的请求重定向到https;
请求IP来源检查:maxmind+IP2Region+本地数据库实现请求IP的来源检查;
RSS:WilderMinds.RssSyndication实现网站的RSS源;
EF扩展功能:zzzproject相关nuget包
Word文档转换:OpenXml实现浏览器端上传Word文档转换为html字符串。
在线文件管理:angular-filemanager+文件管理代码实现服务器文件的在线管理
对前台用户提交的留言和评论进行审核,当前台用户提交的内容可能包含有敏感词时,会进入人工审核,审核成功才会在前台页中展示。
站内消息包含评论、留言、投稿、文章合并等通知。
对网站的公告进行增删查改管理。支持定时上下架发布。
一些通用的页面管理,可自由灵活的创建静态页面。
主动式的广告投放管理,支持竞价排名,支持在banner、边栏、页内、列表内的广告展示,竞价或权重的高低决定广告出现的概率。支持按地区进行投放。
对网站打赏进行增删查改操作,自动掩码。
当前台用户每Session周期内的关键词搜索,不重复的关键词将会被记录,用于热词统计,仅记录最近一个月内的所有搜索关键词,用于统计当月、7天以及当天的搜索热词。
hangfire的可视化管理页面
服务器文件的在线管理,支持浏览、预览、压缩、解压缩、创建文件夹、上传、下载、打包下载等文件的基本操作。