课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的企业都引入了边缘计算等互联网新技术,而本文我们就通过案例分析来简单了解一下,边缘计算稳定性如何实现。
路由可以认为是边缘计算的一个入口,只有在路由配置中的页面,才会走对应的渲染流程。否则页面会直接走回源,获取页面完整内容。上面的json是目前设计的路由配置文件。配置文件终会在一个静态资源的方式,走覆盖式发布发到assetscdn上。同时,为了支持配置发布灰度,线上会存在灰度版本和全量版本的两个配置,在路由代码里配置固定比例,加载灰度或者全量版本的配置。
目前在路由里设计了三种渲染模式,分别是流式渲染、重定向和反向代理。重定向和反向代理的配置比较简单,与nginx配置类似,只需要提目标url即可。
稳定性
影响范围控制
CDN开关:域名按区域、按比例切流,同时可随时从cdn上把流量切回统一接入。
边缘计算SCOPE开关:cdn上配置边缘计算覆盖路径,控制边缘计算只运行在部分路径下。
边缘计算路由开关:边缘计算中通过读取路由配置,控制只有部分页面走流式渲染,否则请求直接走动态加速获取完整页面内容。
异常处理
dns开关,如出现cdn严重问题,直接dns回切到统一接入。
如果边缘计算基础功能出现异常,在cdn配置平台上关闭所有路径的边缘计算,走默认的动态加速。
如果在进了边缘渲染,在没有返回任何响应内容给客户端前,就出现了错误,捕获错误并降级到获取完整页面内容。
如果进了边缘渲染,已经返回了静态部分的响应给客户端,然后在边缘节点了加载动态内容出了问题(超时、http错误码、与静态内容版本号不匹配),返回一个location.reload()的script标签,并结束响应,让页面强制刷新。刷新时可带上bypass边缘计算的query参数以保证刷新时不走边缘渲染。
灰度
1)边缘计算代码灰度
本身平台支持灰度发布边缘计算代码。
2)路由配置灰度
在边缘计算代码里,根据固定比例,加载灰度版本和正式版本的两个配置url。灰度发布时只发布灰度配置,全量发布时发布全量配置。发布的同时清空cdn缓存。
3)页面内容灰度
给灰度页面一个特殊的模板版本号,遇到这个版本号的话,就不走边缘渲染。
平滑发布
前后端分离的发模式下,有一个普遍存在的问题:平滑发布。当页面的静态资源(js,css)的发布,不是与后端一起发布时,可能引起后端返回的HTML内容与前端的js,css内容不匹配的问题。如果两者之间的不匹配没做兼容处理,可能会出现样式错乱或者document选择器找不到元素的问题。
解决平滑发布的一种方式是,在做前后端同时变更的需求时,在代码上做兼容。这样先后发布就不影响页面可用性。
另一种方式是通过版本号。在后端页面上手动配置版本号。当有不兼容发布时,先发前端资源,然后后端手动修改版号,保证只有发布成功的后端机器,HTML里引用的才是新版本的静态资源。
平滑发布的问题其实在分批发布和Beta发布的场景一直存在。只是在ESR的场景,我们把静态部分缓存在cdn上,会使前后端不一致的可能性更大。为了解决这个问题,需要对应业务的开发者进行发布时的风险识别。如果已经做了兼容,可以不用做特殊处理。但如果没有兼容,需要在修改页面模板的版本号,新版本的动态内容,在遇到版本号不匹配的静态内容时,会放弃本次流式渲染,保证页面不出动态内容和静态内容的兼容问题。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。