很多时候在引用前端库 cdn 的时候,会担心这个前端库什么时候挂掉。想做一个东西,监测并自动寻找最优的前端库。

2019-11-15 11:09:19 +08:00
 Jackyxiaoc
最近在做一个项目的时候发现,引用了不同的前端库对网页的速度影响很大。一个不小心前端库挂掉了,所有页面就废了还得冲上去换。

打算做一个原理是 A 域名—自动跳转—B/C/D……等等前端库地址的。
自动寻找速度最快的。保证了前端库的高可用和高速。
如果有这个东西,大家会用吗?
7840 次点击
所在节点    奇思妙想
62 条回复
wunonglin
2019-11-15 12:51:28 +08:00
@Jackyxiaoc #18 所以我一开始就说这个东西肯定需要一定的成本的,不是单单做个跳转就能解决,当然,如果这个东西是自己用的话倒是无所谓,一旦群体大了,你的项目负面情况就暴露出来了
optional
2019-11-15 12:53:18 +08:00
script onerror 替换另一个公共 cdn 就好了,,,如果碰到 2 个公共 cdn 挂了,那就是命
momocraft
2019-11-15 12:58:13 +08:00
作为设施很难做到比正牌 CDN 更稳,比如 cdnjs 是 cloudflare 赞助的。

国内访问不稳是另一个问题,甚至不是设施稳就能解决。
jaynos
2019-11-15 13:02:41 +08:00
用一台服务器来检查多个 CDN 的可用性有点不靠谱吧?服务器有自己的线路, 这和用户的线路是不一样的呀.

服务器在杭州, 用户在深圳. 服务器告诉深圳的用户地址 A 很好, 但是实际上地址 A 在深圳可能已经完全访问不了了.
hyy1995
2019-11-15 13:03:49 +08:00
用 cdn 本来就有风险,这种优化方式并不可控,所以项目中我从不引入 cdn,没感觉项目到了非要用 cdn 来优化加载速度的地步。不过我也没开发过大型项目,可能认知有偏差吧。
lhx2008
2019-11-15 13:05:39 +08:00
最简单的,做一个网站,输入你的用公共 CDN 和邮箱或者手机,然后我自动监控,挂了马上打电话或者发邮件,不就行了,个人开发者又不讲什么 SLA
fengbjhqs
2019-11-15 14:13:14 +08:00
我觉得这个东西比较困难,适用价值也不大,

现在前端基本较少用 cdn 了, 基本是 webpack 打包全部丢上去,

ui 库或者其他基础库,会有按需分割的需求,

而且成本较高,
fengbjhqs
2019-11-15 14:16:39 +08:00
以前用 jq 的时候,我这样处理过,

放 3+多 jq cdn 地址,每个加载 0.5s ,成功停止,否则继续加载,如果都失败,那基本是用户网络问题

但 react+webpack 后,没有更好的方案,
Jackyxiaoc
2019-11-15 14:17:45 +08:00
@wunonglin 其实这个跳转就是为了解决 cdn 直接挂了。您提到的评分的问题,确实不能针对每个用户去调整,除非投入比较多的监测节点。或者在用户端引入一段 js,监测用户的网络质量。再返回合适的公共库。
@jin5354 可以节约流量,降低成本。
@optional script onerror 应该是加载到完全加载不出来才引入第二个吧,要某个公共库是真挂了,用户打开的时间估计也要挺久的。
@momocraft cdn 本身挂的可能是比较大的,但是多了一个稳定的跳转的话,应该稳定一些。
@jaynos 确实。所以如果是简单的跳转只能解决某个公共库挂掉的问题。
@hyy1995 是的,确实有风险。但是如果全部用本地的,或者是自己的 cdn,流量成本应该挺高的。
@lhx2008 对,还是这样比较简单。
rioshikelong121
2019-11-15 14:25:54 +08:00
那就打到自己的 bundle 里面吧。。这个挂了也就意味你的网站挂了。
optional
2019-11-15 14:26:39 +08:00
@Jackyxiaoc 那你把两个 script 都写上,再来个 defer/async,反正大多数 js 加载两次问题不大,
wysnylc
2019-11-15 14:30:27 +08:00
哈啊哈最近刚好找到个类似需求的,不过是 dns 最优解
Jackyxiaoc
2019-11-15 14:37:34 +08:00
@rioshikelong121 emmm 这样自己的服务器压力小大。
@optional 好办法,下午试试。
@wysnylc 哈哈具体的解决方案是?
momocraft
2019-11-15 14:46:15 +08:00
说得直白一点

CDN 用多少机器多少监视才达到的 uptime 在你嘴里叫 "挂的可能比较大”,用户凭什么觉得你,一个恐怕没有认识到这个难度的人,自己做的东西更 "稳定" ?
Jackyxiaoc
2019-11-15 14:48:11 +08:00
@momocraft www.v2ex.com/t/494314 这种算不算挂了?避免的就是这种。
wysnylc
2019-11-15 14:52:19 +08:00
@Jackyxiaoc #33 叫 dns chooser,我有发帖介绍
Jackyxiaoc
2019-11-15 14:53:15 +08:00
@wysnylc 感谢。
watzds
2019-11-15 14:56:44 +08:00
嗯,有时候 CDN 是访问不通,虽然可能不是 CDN 本身问题,页面能打开,部分 js 资源出不来也挺难受的
myqoo
2019-11-15 15:43:42 +08:00
可以看看这个思路,去中心化 CDN https://github.com/EtherDream/decent-cdn
liuzhiyong
2019-11-15 15:46:58 +08:00
我觉得不要“自动跳转”,搞个监控检查就很不错。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/619804

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX