前端容灾

简介: 什么是容灾 容灾的概念始于后端,指当遇到某个服务器或某个机房发生自然灾害、断网断电等情况下的应急办法,可以保证服务依然可用。 新入行的小伙伴可能有疑问,都断网断电了怎么可能保证网站还可以正常访问那?其实这是对大型网站,理解不深导致的,你认为的网站是这样的 像这种单机的服务自然没法做什么容灾了,这一台机器挂了服务也就挂了。

什么是容灾

容灾的概念始于后端,指当遇到某个服务器或某个机房发生自然灾害、断网断电等情况下的应急办法,可以保证服务依然可用。 新入行的小伙伴可能有疑问,都断网断电了怎么可能保证网站还可以正常访问那?其实这是对大型网站,理解不深导致的,你认为的网站是这样的

单机


像这种单机的服务自然没法做什么容灾了,这一台机器挂了服务也就挂了。但现在的大型网站,早就不是上图那个样子了,而是这样

多机
甚至这样
集群

最外层那个抗压的服务器一般是Nginx或Apache ,可以做到当某台机器挂了以后屏蔽掉那台机器,这就是后端容灾的基本手段之一,通过集群做到高可用。

说这些只是想让你理解什么是容灾,这不是今天的重点。今天的重点是前端容灾

什么是前端容灾

前端容灾指的是当后端接口挂了,依然可以保证页面展示信息完整。我们以百度首页中新闻模块举例,当你打开百度的时候,服务端渲染好的页面出来以后,需要请求新闻接口拿到数据渲染新闻模块。你的老板告诉你,不论任何情况,必须展示新闻和广告,即使新闻接口挂了。这个时候怎么办,也就是前端容灾的范畴了。

前端容灾可用手段

localstorage缓冲接口数据

新闻模块的接口,每次有返回的时候,都存入localstorage中,以接口路径为key,返回数据为value,当新闻接口请求失败的时候先从localstorage中读上次成功请求时候的数据,展示出来。

备份一份静态数据到CDN

让业主方同学提供一份兜底新闻数据,存放在CDN上,新闻接口返回失败,用户localstorage中也没有数据的时候,去CDN对应地址拉取数据渲染

利用Service worker的caches API做页面接口缓存

Service worker提供了fetch事件可供监听,当页面发出请求的时候,会先过fetch方法,你可以在这里定义任何你需要的缓存策略,比如请求成功后,将结果存入caches。Service worker中,你甚至可以缓存当前页面的HTML,让网站离线运行。

通过上面这些手段,可以保证只要给用户吐出HTML就能保证页面完整性。对于让页面始终可吐出HTML这件事,那就又属于后端,运维同学所做的了。可以借助上面我介绍到的集群的方式,也可以通过CDN的方式(动态DNS)来解决。

上面三种,是笔者在工作中使用过的前端容灾手段,如果你有更好的想法,可以在评论区告诉我,感谢


原文发布时间:06月22日

原文作者:GeoffZhu

本文来源掘金如需转载请紧急联系作者

相关文章
|
缓存 前端开发 JavaScript
深入了解 Vite:快速、简洁、高效的前端构建工具(上)
深入了解 Vite:快速、简洁、高效的前端构建工具(上)
|
存储 关系型数据库 MySQL
Linux的dev/vda1文件满了导致MySQL无法写入
今天查看两个月前上线的小项目,发现运行非常慢,而且增删改查失效了(吓我一大跳),急急忙忙的就开始了我的线上问题排查之路。/dev/vda1是 Linux 系统中的一个设备文件,它表示第一个虚拟磁盘(vda)的第一个分区(1)。在大多数 Linux 发行版中,这是系统根分区的默认位置。如果您要对/dev/vda1进行操作(例如挂载、格式化、备份等),则需要具有足够的权限。一般来说,只有 root 用户或具有 sudo 权限的用户才能进行这些操作。当Linux的/dev/vda1。
945 0
|
数据可视化 定位技术
svg数据可视化地图实战笔记
svg数据可视化地图实战笔记
485 0
|
10月前
2024阿里云技术年报 基础设施篇
2024阿里云技术年报基础设施篇
344 14
2024阿里云技术年报 基础设施篇
|
JavaScript 前端开发 Shell
mac和windows上安装nvm管理node版本
NVM(Node Version Manager)是前端开发者常用的命令行工具,用于管理计算机上的不同Node.js版本。通过NVM,开发者可以轻松地在多个项目间切换所需的Node.js版本。在Mac上,可以通过cURL或Wget下载安装脚本,或使用包管理工具brew安装。安装后需配置环境变量以识别NVM命令。Windows用户则可通过专用的nvm-windows安装程序完成安装。常用命令包括安装、卸载特定版本、列出已安装版本等。
|
前端开发 人机交互 UED
浅谈前端视角下的用户体验
浅谈前端视角下的用户体验
1850 0
浅谈前端视角下的用户体验
|
监控 测试技术 容器
干货!《云上业务稳定性保障实践白皮书》免费下载!
本书通过多位资深阿里云客户技术服务经理在大型项目中积累的业务稳定性保障经验以及集团内多年沉淀形成的稳定性建设体系,希望可以给读者提供一套可落地的方法论和多种云上业务稳定性保障的关键技术手段。
537 0
干货!《云上业务稳定性保障实践白皮书》免费下载!
|
Web App开发 JavaScript 前端开发
收到短信验证码自动填充到表单,还能这么玩
苹果系统上的App和网站可以实现来自短信的验证码自动填充表单的功能,通常你是怎么实现这个功能的
684 0
收到短信验证码自动填充到表单,还能这么玩
|
移动开发 JavaScript
vue路由hash模式引发的血案
vue路由hash模式引发的血案
|
API Android开发 开发者
Android12 新特性及适配指南
Android 12(API 31)于2021年10月4日正式发布,正式版源代码也于当日被推送到AOSP Android开源项目。截止到笔者撰写这篇文章时,国内各终端厂商的在售Android设备,已经逐步开启了Android 12正式版本的更新。当前,对于Android应用开发者来说,Android 12 的软件兼容适配已迫在眉睫。
1669 0
Android12 新特性及适配指南