We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
这是最近技术分享整理出来的话题,内容大部分摘自阿里云,腾讯云官方文档。
CDN 的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在 现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的 负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞, 提高用户访问响应速度和命中率。CDN 的关键技术主要包括了节点调度、节点负载 均衡和内容存储、分发、管理技术。
使用 CDN 加速前,用户侧发起的请求通过用户侧 DNS 递归到网站 DNS 解析 以后,最终用户侧直接请求网站服务器。这里可能会造成以下几种情况: 1. 中心服务器负载过高,因为所有客户端发起的请求都会请求到服务器上 2. 终端用户内容获取延时高,比如服务器在北京,而用户在广州 3. 服务稳定性差
详细说明如下:
www.test.com
www.test.com.cdn.dnsv1.com
CDN的层级划分
边缘计算是一种分散式运算的架构,将应用程序、数据资料与服务的运算,由⽹络中⼼节点移往⽹络逻辑上的边缘节点来处理。将原本完全由中心节点处理⼤型服务加以分解,切割成更⼩与更容易管理的部分,分散到边缘节点去处理。边缘节点更接近于⽤户终端装置,可以加快资料的处理与传送速度,减少延迟。
https://www.aliyun.com/product/ens
https://cloud.tencent.com/product/ecm
下面摘自 ENS 的文档:
开通服务:您需要根据实际业务需求填写开通ENS服务的各项资料。
(可选)创建自定义镜像:阿里云ENS控制台支持通过镜像构建机方式创建自定义镜像,您可以将自定义镜像用于创建边缘服务或升级边缘服务镜像。
创建边缘服务:根据业务需求,您可以在控制台创建边缘服务,明确边缘算力配置、分布,ENS智能选择节点进行批量下发算力。
上线运营:业务测试通过后,正式上线运营。您可以通过ENS控制台管理边缘服务、启停边缘服务、更新镜像、查看用量、进行数据监控等。
防止将某些 import 的包(package)打包到 bundle 中,而是在运行时(runtime)再去从外部获取这些扩展依赖(external dependencies)。
https://www.webpackjs.com/configuration/externals/
module.exports = { externals: { react: 'react' // '包名':'全局变量' }, plugins: [ new HtmlWebpackPlugin(/** 手动植入cdn 地址 **/ { cdn: { js: ['cdn地址'] } } ) ] }
https://juejin.cn/post/6952702774644015141
SSG:Static Site Generation,静态网站生成
这样做有很多好处:
SSG 的模式比较适用于个人博客/技术文档这种页面数量有限,更新频率有限的网站。但不适用于网页较多,更新频繁的网站。
ISR:Incremental Site Rendering,增量式的网站渲染
既然全量预渲染整个网站是不现实的,那么我们可以做一个切分:
1、关键性的页面(如网站首页、热点数据等)预渲染为静态页面,缓存至 CDN,保证最佳的访问性能;
2、非关键性的页面(如流量很少的老旧内容)先响应 fallback 内容,然后浏览器渲染(CSR)为实际数据;同时对页面进行异步预渲染,之后缓存至 CDN,提升后续用户访问的性能。
页面的更新遵循 stale-while-revalidate 的逻辑,即始终返回 CDN 的缓存数据(无论是否过期);如果数据已经过期,那么触发异步的预渲染,异步更新 CDN 的缓存。
Incremental Static Regeneration: Its Benefits and Its Flaws
The text was updated successfully, but these errors were encountered:
补充一下 QA:
Sorry, something went wrong.
No branches or pull requests
CDN
前言
这是最近技术分享整理出来的话题,内容大部分摘自阿里云,腾讯云官方文档。
CDN是什么
CDN 的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在 现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的 负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞, 提高用户访问响应速度和命中率。CDN 的关键技术主要包括了节点调度、节点负载 均衡和内容存储、分发、管理技术。
为什么要用CDN
使用 CDN 加速前,用户侧发起的请求通过用户侧 DNS 递归到网站 DNS 解析 以后,最终用户侧直接请求网站服务器。这里可能会造成以下几种情况: 1. 中心服务器负载过高,因为所有客户端发起的请求都会请求到服务器上 2. 终端用户内容获取延时高,比如服务器在北京,而用户在广州 3. 服务稳定性差
详细说明如下:
www.test.com
下的某图片资源(如:1.jpg)发起请求,会先向 Local DNS 发起域名解析请求。www.test.com
时,会发现已经配置了 CNAMEwww.test.com.cdn.dnsv1.com
,解析请求会发送至 Tencent DNS(GSLB),GSLB 为腾讯云自主研发的调度体系,会为请求分配最佳节点 IP。CDN的层级划分
什么是边缘计算
边缘计算是一种分散式运算的架构,将应用程序、数据资料与服务的运算,由⽹络中⼼节点移往⽹络逻辑上的边缘节点来处理。将原本完全由中心节点处理⼤型服务加以分解,切割成更⼩与更容易管理的部分,分散到边缘节点去处理。边缘节点更接近于⽤户终端装置,可以加快资料的处理与传送速度,减少延迟。
阿里云 边缘云ENS / 腾讯云 边缘计算机器 ECM
https://www.aliyun.com/product/ens
https://cloud.tencent.com/product/ecm
下面摘自 ENS 的文档:
工程化上的应用
通过 CDN 减少前端打包体积
防止将某些 import 的包(package)打包到 bundle 中,而是在运行时(runtime)再去从外部获取这些扩展依赖(external dependencies)。
https://www.webpackjs.com/configuration/externals/
CICD 的时候自动上传静态资源到 CDN
https://juejin.cn/post/6952702774644015141
预渲染的边缘计算
SSG:Static Site Generation,静态网站生成
这样做有很多好处:
SSG 的模式比较适用于个人博客/技术文档这种页面数量有限,更新频率有限的网站。但不适用于网页较多,更新频繁的网站。
ISR:Incremental Site Rendering,增量式的网站渲染
既然全量预渲染整个网站是不现实的,那么我们可以做一个切分:
1、关键性的页面(如网站首页、热点数据等)预渲染为静态页面,缓存至 CDN,保证最佳的访问性能;
2、非关键性的页面(如流量很少的老旧内容)先响应 fallback 内容,然后浏览器渲染(CSR)为实际数据;同时对页面进行异步预渲染,之后缓存至 CDN,提升后续用户访问的性能。
页面的更新遵循 stale-while-revalidate 的逻辑,即始终返回 CDN 的缓存数据(无论是否过期);如果数据已经过期,那么触发异步的预渲染,异步更新 CDN 的缓存。
Incremental Static Regeneration: Its Benefits and Its Flaws
The text was updated successfully, but these errors were encountered: