7.13 B站事故当事人:这是我从业以来压力最大的一晚

作者: 三太子敖丙分类: 计算机技术 发布时间: 2022-07-22 11:44:06 浏览:627309 次

7.13 B站事故当事人:这是我从业以来压力最大的一晚

Violienk:
1:此视频为原视频的详细解释版本(一鱼两吃?) 2:0和"0"是不一样的,一个是Number,一个是String等 3:灾备容灾这年头都变成多活这个词了吗? 你们怎么这么喜欢造新词呢.... 4:愿这个视频也有500万播放量

【回复】上个视频本身其实想着受众都是计算机行业相关的,所以都只是做了逻辑梳理 很多东西就没详细解释了 至于灾备 容灾 多活 同城多活 异地多活 这些都是计算机行业存在比较久的词啦 (与计算的行业解决方案 词更多,这就是这个行业最试用的词嘛)
【回复】唉,但是弱类型语言的使用习惯…[无语]…每次看到都让我这个java使用者浑身发痒…奇痒难耐…
【回复】多活算是容灾的一个子集,代表的是每个服务器都会实时更新数据,这是与相对于单活(备份服务器从主服务器拿数据,并在主服务器宕机的时候切换过来)的情况的
秋豆麻袋yo:
我没学过lua语言...但是学过一点皮毛js脚本 不过视频的大概的意思就是函数传入了一个字符串的“0”,然后虽然字符串的“0”在算数运算的时候会自动转型,但是转型之后也刚好成了表达式的分母,结果就返回NaN了,然后死循环了... 我的问题就是: 1. 这个字符串的“0”是哪里来的呀[喜极而泣],哪里来的诡计多端的“0”[笑哭] 2.在做取余的运算前不会提高警惕做一些预防措施嘛,做除法实在太危险了[喜极而泣]

【回复】这个0是因为他们做了算法调整 想动态调整一个权重,但是特殊情况这个参数变成0了,至于那个运算 这个是lua语言的特性 弱类型语言都都或多或少的问题 使用者需要加倍小心
【回复】回复 @三太子敖丙 :感谢解答!~ 其实我有一个想法,就是其实不一定是字符串"0",也会导致返回NaN呢? lua我不清楚,js里面的话比如你函数两个形参a和b嘛, 假如你传入只穿了一个数. 比如a = 1 ,而b没传是undefined。 number 和 undefined运算的话,结果也会返回NaN的
【回复】取余函数本身没有问题,问题是用这个函数的时候,传参进来是"0",自己写代码的时候这种bug就很难排查的.很可能上一个式子得到的是数字,但是计算机以为是string了.因为正常跑的时候这个函数都是传参数字,所以可以跑,只有特殊情况0的时候是string
ウェビバボ:
解释的通俗易懂,好评[支持] 不过不能理解为啥Lua不能声明数据类型,这问题很严重啊 看函数里,字符串和数字又是做判断又是取余的类型不一致肯定报错 最后还得调查别的地方有没有类似的问题,或者考虑换框架吗[虎年[思考]

【回复】很多语言都是这样 弱类型的 所以这个没有为什么 就是为了简单易用 只是需要注意使用姿势
【回复】就好像Python不能确定类型或者确定传值还是传址。前者好解决 try: 强制转化数据类型
三太子敖丙:
上一期没考虑到非计算机专业的小伙伴,这期大家都听懂没[笑哭]

【回复】我给我朋友听了听,他差点炸了(物理)
【回复】对学过一点编程的人来说挺好理解的[doge]
高八度音符:
没学过任何代码,可不可以这么理解: 一般咱们练题,是由老师发卷,学生做题,做完了就还给老师改卷,对的题就过了,错的题老师发给你重做,重做完了在还给老师改,依次循环直到全部做对就过关。 但是“lua”这个学霸他有个暴脾气,某张卷子如果印刷得不太清晰,他就直接交白卷,结果老师一看,白卷相当于全错,又把卷子发给了“lua”,“lua”一看还是这张卷子,又交了张白卷上去形成了死循环

【回复】然后卷子来回来回地递送,把送卷子的同学干废了[doge][doge][doge]
【回复】回复 @殇-2412 :啊?难道不是因为老师只顾着和那个学霸反复递卷子导致其他排队的同学全部在那里干等嘛[doge][doge][doge][吃瓜][吃瓜][吃瓜]
【回复】此处运用了拟人的手法,生动形象的展现出了当时的bug运行,简洁明了,通俗易懂[doge]
哔哩哔哩技术:
和敖丙大佬的合作很愉快,期待日后有更多的技术交流,三连啦~[打call][打call][打call]

【回复】在?抽个安全岗内推[doge]
【回复】只要是b站给我的,网安岗和保安岗我都可以[脱单doge]
板砖狐:
CDN:京东自营物流 负载均衡:几条线一起核酸

【回复】DDoS:每年的双十一和春运抢票
【回复】回復 @学日语打日本 :这个破玩意应该大家都知道吧(悲)
饮水机运维:
运维三板斧,重启服务,重启服务器,回退版本。 再不行就重搭,优先恢复业务。[藏狐]

【回复】回复 @丿风筝有风丶 :应该是,先关机重启;不行再拔电源重启;回退系统版本;换台电脑
【回复】我不懂电脑,是不是就像普通人玩电脑遇到蓝屏了,然后关机重启一下,不行再重启,还不行,就去电脑店让他给你重装一下系统,虽然游戏还要重新下载,但是电脑能开机了。
【回复】回复 @丿风筝有风丶 :这顶多算换了个c盘
lala乱舞君:
当运维太麻烦了,随时待命不提,还要当时人很强大淡定的内心[微笑]

【回复】而且出了问题可以帅锅给你[doge]
【回复】运维最苦恼的是,无法从源头解决问题。
【回复】回复 @sealedimpl :能从源头解决问题。那就太深了。只能是经验+运气
一口老汤:
这个问题是分流时小幅度偏移,偏移时间久了才会导致的崩溃,需要测试和运维都很细心才能发现;通俗来说,就是水库放水,智能控制水量的模块有小幅度缩的问题,小水量测试看不出来,完全放水后累计出灾难性效果。 最后就是对于b的技术别有太多自信,阿b是个在18年之前视频下载源都没好好做保护的公司,技术有强有弱,尤其测试人员一般要求都会低一些,bug的case主要还是研发来想来规避

【回复】回复 @二十五画生m :看起来是低级 但是不好找到 无数大佬级别的人物也会犯小错误 只能看发现的及时不及时了
【回复】回复 @联邦肥鸡 :你大量请求请求过来 还是会有问题的,这属于代码中间环节出错下面肯定都是会出错的,怎么启动都会挂
【回复】回复 @联邦肥鸡 :可能lua函数里面的数值没清空?(不是很懂)是不是可以理解为重启了但是没完全重启
鹘鹰飞行员:
。。。漂亮,我会了(虽然我学了2年c++,Python,kitten)

【回复】我咋上来了,我是咋干得过下面8个赞的
【回复】重点还是计网和计组有关知识的实践应用,虽然问题是编程语言问题引起了一系列的连锁崩盘反应
【回复】回复 @世界之下审视迷雾 :你会kitten?你是编程猫用户吗?
人间凡级退堂鼓:
刚看完另外一个视频感觉是那种一道我看不懂的最后大题,跳到这个视频后像看见了参考答案[妙啊]

【回复】你的评论也很通俗易懂[doge][支持]
Kotlin是最好的语言:
可是这个入参哪里来的呢,这里的代码防御性不够只是一方面的问题,视频里并没有说明整条链路

【回复】这就是新开发的一个动态调度模块 所以参数就是从注册中心这些地方传过来的 特殊情况下触发了 “0” 细节不用说了 大家了解大概其实就够了
【回复】开发实际上是知道这一点的,他专门加了判断,不过缺乏了对语言特性的了解
【回复】回复 @眉毛以上四指半 :if b == 0 then return a 如果b为数字0,则返回a
rgvcbjiuj:
这还不是根本原因啊,注册中心什么情况下会返回零?

【回复】就好像是判断题一样,一般人写题要么填正确,要么填错误,突然来了一个奇葩,填了个“我不会”进去,概率很小,很难出现,但是这种奇葩是存在的
【回复】回复 @龖龘灋彂 :应该不是默认为0,否则早就出问题了,这个为0的触发条件比较难,测试都没测出来
【回复】回复 @ZONCHEY :就是进酒吧点炒饭...[笑哭]
GrantLi:
所以,还是动态类型的坑[doge],强绑定数据类型某程度还是必要的

【回复】没有就是写粗了,递归这东西,上场的时候一定要上保险,否则就极容易出事。
【回复】可以在入参前先将所有参数强制转化为数字类型[doge]
云天明n70:
主要是学算法的时候求最大公约数很多都用递归,但实际并不能用递归是吗[笑哭]

【回复】通常递归可以转化为循环,然后递归容易出错,而一旦死循环会面临爆栈的问题,调用一个函数是需要分配栈空间的,一旦爆栈你就啥都看不到了,不利于找bug[吃瓜]
【回复】能用,但是要有限制或者判断。强类型语言基本把能出这种bug的地方都限制了,弱类型语言就要你自己解决。写代码更方便肯定也有代价啊。
【回复】递归没问题啊,只是人水平的问题,毕竟世界上还存在着Lisp,Haskell这种没有循环的语言
万象聚今朝:
作为门外汉最起码知道是啥原因了就行[OK]

常磐猛犸:
说白了就是全路径没跑出来很正常[tv_坏笑]

程序员 科技 编程 趣味科普人文 经验分享 互联网 编程开发 职业职场

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!