开发

积薪24年1月更新

主要提升了性能方面

2024年1月13日
积薪24年1月更新
本文共有883字,预计阅读时间4分钟
距离上一次大更新已经过去了小半年,来到2024年,积薪又迎来一波优化。
本次前后端更新都是性能优化,界面没有改变。

前端

升级框架

框架进行了大版本升级,来到SvelteKit 2。

预加载

对于首页的几个内部链接,增加了预加载数据设定,页面间跳转将会比之前快几十毫秒。

去除umami统计

去除了umami统计链接,使用的是Cloudflare自带分析。主要原因是之前我的umami部署在Vercel,数据库用supabase。结果埋点太多,数据把supabase免费容量快撑爆了。加上我正在开发的新博客系统的数据库也要用supabase,就把umami停掉了。
想来也是,我本来就是佛系运营,那么多统计数据真的有必要吗?

后端

升级依赖

之前因为用到的提取文章和RSS的依赖去除了CJS导出支持,导致我一直没法升级依赖。这次把相关逻辑重构了一下,终于进行了依次大版本更新。目前看起来还好,但没怎么测试过。

文章和rss提取

如上所说,提取RSS和文章信息的部分移出了后端,改由supabase的边缘函数进行处理。迁移比我想象的简单,一个小时就搞定了。

数据缓存

积薪是4小时抓取一次,也就是说绝大多数内容4个小时都不会变。而之前的架构中,前端部署在Cloudflare,后端Nest运行在Railway,数据库则在Mongo Atlas。三地运行显然会增加互相之间的请求延时。
于是给Nest的@Get请求增加了1小时的缓存,目前后端的数据将基本从内存读取,而不需要访问异地的Mongo数据库。
因为我这里网络还行,之前访问没感觉到什么卡顿。但是根据统计数据,大部分访客彻底加载完积薪需要3秒左右。经过这次更新,到底有没有提升,你的实际体验有没有变化,欢迎你在评论里告诉我。
Continue
最后更新一下我喊了很久但一直没做完的博客系统吧。
去年下半年,我写了后端的大致结构和数据,然后开始写管理后台的前端。但是今年我开始考虑用户管理以及鉴权。最终决定使用supabase的认证功能。既然如此,一个后台使用两个数据库(mongo/postgres)就没有必要了。
于是今年我开始重构后台的数据部分,从MongoDB逐步迁移到supabase的Postgres上来。目前该项工作正在进行中。之后后端和管理后台的开发应该会同步进行。
这个新博客系统,将会把常用的博客功能集中到一起,不仅支持多种内容分类,如长文、摄影、微博,也默认支持多语言。自带评论、邮件提醒、博客统计数据、外链预览等功能。
(外链预览是在文章中插入外链,会从该链接抓取关键信息以及截图进行存储。因为经常发生外链年久失修无法访问的情况。)
架构采用前后端分离,后端-数据库-媒体存储-管理后台-网站前端,都是独立的。工程量很大,我希望在上半年能完成。

评论