咱们都知道虽然我是一个程序员,可是我非常热爱运动,比如跳舞,这不每天回家睡前我都会在B站舞蹈区学习相关的舞蹈。

B站崩了,猜想了几个或许原因

昨日也不破例,我一洗漱完就奔驰坐在电脑前,打开B站舞蹈区预备学习咬人喵,欣小萌、小仙若他们新的舞蹈动作,不电脑黑屏得不说老婆们跳的真好,连我这种内微服务架构的优缺点向的人也不自觉的跟着扭动了起来。

合理我预备学下一个动作的时分,我发现怎样404 NOT found了。

坏了,作为开发的我第一贯觉是体系崩了,我乃至怀疑是我网的问题,我发现手机网络正常电脑拜访其他网索引的效果及优缺点页也工商银行正常,我就知道运维/开发要背锅了。

B站崩了,猜想了几个或许原因

我改写了几回,发现仍是这样,我就有点怜惜对应的职责同学了,年终应该没了。(到我写这个文章的时分网站还没康复)

作为前程序员的我,就习惯性的去想B站的网站架构组成,以微服务和微服务架构的差异及这次事端复盘下来,或许会出问题的点。(老工作习惯了)

首要咱们可以大致画一下简单的一个网站组成的架构图,咱们再去猜想这次问题或许出在什么当地。

由于熬夜写文章微服务架构的优缺点哈,我也没在这种首要靠视频直播的公司前端工程师呆过,技能栈也不是很了解,所以就用电商的大约逻辑,画了索引页是哪一页一个草图,咱们轻点喷。

B站崩了,猜想了几个或许原因

从上到下,从入口到cdn索引符号内容前端工程师分发,到前端服务器,后端服务器,分布式存储,大数据分析,风控到搜索引擎举荐这我就随意画了一下,我想全体架构应该不会差异特别大。

我去网上随意查了一些类似斗鱼,B站,a站这样的公司,首要技能栈和技能难点首要有:

视频拜访存储

  • 就近节点
  • 视频编解码
  • 断点续传(跟咱们写的io比如差多)
  • 数据库体系&索引失效的几种情况文件体系阻隔

并发拜访

  • 流媒体服务器(各大厂商都有电脑怎么截图,带宽本钱较前端学什么大)
  • 数据集群,分布式存储、缓存
  • CDN内容分发
  • 负载均衡
  • 搜索引擎(分片)

弹幕体系

  • 并发、线程
  • kafka
  • nio结构(netty)

其实跟咱们咱们学的技能都差不多前端面试题,不过他们的对应微服务的言语组成或许go、php、vue、node占比比较大。索引图

咱们分析下这次事端或许出事的原因和当地:

1.删库跑路

B站崩了,猜想了几个或许原因

之前微盟发生过这个工作,我觉得各个公司应该都不会把运维的权限给这google么大了,电脑怎么截图比如主机权限直接阻挠了rmGo-rf、fdisk、drop这样的指令。

并且数据库现在大约率都是多主多从,多地备份的,容灾也应该是做的很好的,并且光是数据库炸了,电脑黑屏却开着机那cdn的许多静态资源应该也不会加载不出前端开发,整个页面直接404微服务逻辑架构图了。

2.单微服务挂掉拖垮大集群

B站崩了,猜想了几个或许原因

现在都是前后端别离的,假定是后端挂了,前端许多东西依然是能加载只是数据出不来报错,所以集群要挂也或许是前端挂了,或许前电脑截图快捷键ctrl加什么后端一同挂了,可是仍是那个问题,现在看起来是全部静态资源都无法拜访了。

不过这个前端点我觉得也有一点或许,由于部分服务挂了,导致许多报错,拉挂了集群,并且越是这样咱们越会不断改写页面,给其他电脑截图快捷键服务重启添加难度,可是这个或许性没我终究说的或许性大。

3.服务器厂商出问题了

B站崩了,猜想了几个或许原因

这种大网站都是cdn+slb+站集群,各种限流降级、负载均衡按道理都会做的很好,并且他们按道理不会不做容灾。

所以枸杞只有或许是这些前置服务的服务器厂商出问题了,CDN假定挂了那网关负载均衡啥的压力都大了,终究导致连锁的雪崩效应打挂了整套体系。

可是我比较疑问的是B站的BFF应该会路由到一些接入节点比较进的机房宫颈癌前期症状,这样全国各地的小伙伴刷的时分,应该是有些人好,有些人坏,有些人微服务体系架构图时好时坏才对,可是现在看来是全坏了,莫非前端培训机构他们押宝了一个厂商的一个节点片区?

我看网上也索引失效的几种情况在传云海数据中心起火了,不知道真假,只能等醒来看看B站官宣了,B站原则上,理论上,从CDN、分布式存储、大数据、搜索引擎都应该做了许多确保方法才对,假定然all in了一个当地那确实不太正确。

我的感觉便是没做好悉数上云,线下的服务器出了问题,刚好是没上云的是要害业务,现在公司都是公有前端和后端的差异云+私有云这样的混合云搭配用的,可是私有云部分都是B站自己的内部工程造价业务,所微服务逻辑架构图以应该不会他自己的机房出问题。

假定然像我说的,押宝了一个服务器厂商,只是cdn出问题还好,假定物理机还出问题了,那数据康复或许就慢了,我自己之前做大数据的,我知道数据备份都是增量+全量索引的效果及优缺点,康复的时分真的好了一部分还可以从其他区域节点拉,可是假前端面试题设是放在一个当地了,那就麻烦了。

复盘

我想不论终究是什么原因索引图构成的,咱们技能人微服务和分布式的差异和公司应该考虑前端开发是干什么的的便是怎样去避免这样工作的发生。

数据备份: 备份必定要做,否则假定然发微服务和分布式的差异生什么自然灾害,那是很伤心的,所以许多云厂商现在都选在贵州我老家这样自然灾害比较少的当地、或许湖底、海底(比较凉爽本钱能下去不少)。

全量、增量基本上都是一贯前端面试题要做的,分天、周、月不断的增量数据,以及按时的全量数据备份,这样可以让丢失下降许多,就怕全部区域的机械盘都坏了(异地容灾除了地球消除否则都能找回来)。

运维权限收敛,仍是怕删库跑路,反正我是经常在服务器上rm-rf,不过索引符号表示的意义一般有跳板机才华进去的都可以做指令阻挠。

电脑云+云原生: 云产品的各种才华现在很老练的,企业应该对对应的云厂商有足够的信赖,当然也得选对才行,云产品的各种才华是其一,还有要害时刻的容灾、应急照应机制都是许多公司不具备的。

云原生是近些年才咱们才注重的技能微服务架构的优缺点,docker索引的效果及优缺点+k8s这对应索引符号表示的意义的一些组合,加上云核算的各种才华,其实可以做到无人值守,动态缩扩容,以及上面说的应急照应,可是技能本身是需求一些查验本钱的,并且我也不知道B站这样视频为主的体系,适不适合。电脑截图快捷键ctrl加什么

kube前端结构rnetes的规划上也会存在一些编排、通讯的问题。

本身实力打造: 其实我觉得不论是上云,仍是不上云,都不能太依托许多云厂商,自己的中心技能体系和应急机制仍是要有,假定云厂商真的靠不住怎样办?怎样去做真实的高可用,这我觉得是企前端开发需求学什么业技能人员需求去考虑的。

举个比如,许多云厂商都是一个物理机隔成多个虚拟微服务体系架构图机售卖,然后就会存在单物理机多宿主的情况,假定其间一方是电商玩双枸杞十一,一电脑开不了机怎么办方是游戏厂商,对方许多占用网络带宽,你就或许存在丢包的情况,这对游戏用户来说是体会极差的,这样便是我说为啥不要过于信赖和依托云厂商的原因。

对方如果买了去挖矿,那更过火,把算力榨干,满电脑怎么截图负荷跑更伤心。

B站这次,好在这样的问题提早暴露了,并且是晚上,应该有不少流量低谷的时刻去康复,我写到这儿的时分,网页大部分康复了,可是我发现仍是部分康复。

不论怎样说下次就可以彻底前端技能杜绝了,信赖B站后边很长一段时刻都会忙于架构体系改造,去确保自己真实的高可用。

希望往后能让我安稳的在晚上看看舞蹈区,而不是盯着502、404的2233娘发愣,嘻嘻

B站崩了,猜想了几个或许原因