介绍
Source Global CDN是一个公共静态加速服务,npm加速在我们的计划范围内。
2021年1月26日,我们的npm加速架构大体完成,并于1月27日发布。
预告文章:https://www.sourcegcdn.com/public/36.html
使用
我们将服务部署在 npm.sourcegcdn.com
。由于时间紧张,我们没有时间去进行CDN融合系统配置,因此初次发布的架构方案仅使用单个CDN服务。在不久的将来,我们会为其加入多个CDN系统进行融合加速。
你可以通过以下方式调用静态文件
https://npm.sourcegcdn.com/{package}@{version}/dist/main.js
例如:
在生产环境中强制版本号是很必要的。
架构
所有的文件都会被无限期缓存,并通过CDN分发。为了增快速度,我们会放置一些常用的库在存储桶中,例如jquery、mathjax、bootstrap等。
我们的npm加速服务建立在unpkg.com基础上,将在最底层回源到unpkg。但为了确保架构稳定,在最初发布的版本我们删去了它的部分功能。
用的是哪家的 CDN 服务?
这个为了防止架构抄袭就不说了,但可以确保的是必定会使用国内多个大厂的CDN做融合
有一些写法会有点点问题,但肯定是少数。例如https://unpkg.com/[email protected]在正常访问是可以打开的,但是https://npm.sourcegcdn.com/[email protected]就是不行的。
这里就是稍微提一嘴,因为生产环境是不可能这样写的,这样只是在开发中使用。
因为npm加速为了尽量避免缓存问题,直接做永久缓存,所以这种会变动的分支我直接禁掉了。我这个主要就是对标生产环境吧
而且不同于jsdelivr和unpkg的是,我第一层回源的是对象存储,第二层才是中间件,这样可以把延迟损耗和成本都降到最小。