就鹿晗宣布恋情导致微博宕机事件浅谈大型网站高可用性架构如何看待发的故事?

发布时间 : 2020/07/31 19:08

中午用餐刷着刷着微博发现微博忽然挂了。我一开始以为是家里网不好,后来换了流量刷还是刷不出内容,而且报error,我就知道微博应该是挂了。往小伙伴圈一看,原来是鹿晗和关晓彤微博互圈“公布恋情”了。要不是从前看过《好老师》这部剧没准我还真不熟悉关晓彤。陆地cp前几天不是还在炒着吗?怎么这么忽然?诶..贵圈贼乱啊。

作为一名程序员,我更感爱好的是微博怎样应对瞬时涌来的高并发大流量。从好久好久从前文章马伊琍的“周一见”,到后来“出轨队”、“吸毒队”的争相夺分,再到前段时间的郭敬明事件、薛之谦事件,再到今日的鹿晗公布恋情......微博看似每次都在挂,不停都没有进步,大家每次碰到热门事件刷不出内容的时间都市吐槽微博的应用平台很辣鸡。但是呢,微博的后台系统肯定不停在重构升级优化,我以为可以或许做到今日这种程度已经很不错了。

从用户的角度(重要是我的角度hhhhh)来看

碰到热门事件的时间微博大概率在短时间内(约莫10~15)大概会完全刷不出内容,过了一段时间之后(约莫半小时)进行隔断刷新(隔断10秒左右),有大概某些时间会看到5xx的error,5开头的http状态码代表服务器要么是网关存在问题,好比说服务器拒绝连接、网关超时要么是应用代码存在bug等都市导致5xx的错误。在热门事件发生1小时内,系统应该可以恢复正常的服务。

从网站开发、运维职员的角度来看

  • 运维:卧槽?怎么访问流量这么高?是出啥bug了吗?卧槽!不会是又有人出轨吸毒了吧?emmmm....我的国庆假期可还没结束啊!
  • 运维:兄弟们,快醒醒!快加机器啊!系统要崩了!
  • 开发:别催!再催自尽!
  • leader:测试在扩容之后赶快拉出来测测!
  • 测试:人在家中躺,锅从天上来!
上面都是我胡说的!

为什么我以为微博在高并发大流量访问方面的体现已经很不错了呢?举个例子吧:淘宝每年在双11购物节的时间也要应对高并发的场景,但是这是可以提前做许多预备的,好比说提前购置带宽资源、增长服务器资源、进行完备的异地容灾等等,许多都是可猜测的。而微博呢?热门事件随时都大概发生,以是这对于微博的运维工程师来说是很大的磨练。固然,如今的运维平台也是很的智能了,可以对各项指标进行及时监控,一有不同寻常,立刻进行短信要么邮件报警,之后就是各个岗亭的工程师人肉上场调配各种资源了。

那微博在平常为什么不增长一些服务器资源呢?

服务器资源、网络带宽资源等既重要,又昂贵。由于并不是时时刻刻都必须应对高并发的场景,因此假如说在平常增长了冗余的服务器资源导致大量机器空载,也是一种很大的浪费。我们在思量提供可用服务的同时,也必须思量一下本钱。

原来我开始写这篇博客的时间就是想回首一下自己从前学习过的大型网站高可用架构相关知识。但是由于高性能、伸缩性、拓展性与高可用性密不可分,以是我写着写着就感觉写不下去了。想写的工具太多了,有点不知道从那里开始写。以是下面我就针对高可用性架构中常常会提到的几个点来讲讲。

大型网站高可用架构

不管是对于小型网站还是大型网站来说,分层都是必须的:粗粒度的分层一样平常为应用层、业务层和数据层。横向分层之后,大概还会根据模块的差别对每一层进行纵向的分割。拿微博举例,我以为它的评述模块和点赞模块应该是解耦的。越是庞杂的系统,横向和纵向的分层分割粒度就会越细。许多时间你用起来以为它就是一个系统,实在背面大概是由几百上千个独立摆设的系统对外提供服务。

集群

集群在大型网站架构中是一个非常非常重要的观点。由于服务器(不管是应用服务器还是数据服务器)轻易发生单点问题,一旦一台服务器gg了,就必须进行失效转移。

应用服务器集群

一样平常来说,应用服务器必须是无状态的。什么叫无状态服务器呢?在介绍它之前,我们先来说一下状态服务器:状态服务器一样平常会保存请求相关的信息,每个请求会默认地使用从前的请求信息。这样就很轻易导致会话粘滞问题:假如一台状态服务器宕机了,那么它保存的请求信息(比方session)就丢失了,大概会导致不可预知的问题。
那么相对的,无状态服务器就不保存请求信息,它处置的客户信息必须由请求自己携带,要么是从其他服务器集群获取。因此无状态服务器相对于状态服务器来说越发地结实,就算是重启服务器甚至是服务器宕机都不会丢失状态。由此引申出来的另一个长处就是方便扩容:只要在增长的服务器上摆设相同的应用并做好反向代理就能对外提供正常的服务。

session管理

既然应用服务器是无状态的,那么用户的登录信息(session)怎样管理呢?比较常见的有下面四种方法。但是由于前三种都有很大的范围性,这里只聊聊基于集群的session服务器管理方法。

  • session复制
  • 源地点hash(session绑定)
  • 用cookie记载session
  • session服务器

    我们在这里是将服务器的状态进行分散:分为无状态的应用服务器和有状态的session服务器。固然,这里说的session服务器肯定说的是session服务器集群。我们可以借助分布式缓存要么是关系型数据库来存储session。对于微博来说,这里肯定得用分布式缓存了:由于用关系型数据库的话数据库连接资源轻易成为瓶颈,而且I/O操作也很耗时间。比较常见的K-V内存数据库有Redis。我以为微博内容中的赞数、用户的关注数和粉丝数用Redis来存应该算是比较合适的。

负载平衡

既然提到了集群,肯定得说说负载平衡。但是感觉负载平衡应该可以归类到可伸缩性内里去,以是这里就不具体讲啦,就简单说说有哪些常见的负载平衡的方法以及负载平衡算法。

负载平衡方法
  • HTTP重定向负载平衡
  • DNS域名剖析负载平衡
  • 反向代理负载平衡
  • IP负载平衡
  • 数据链路层负载平衡
负载平衡算法
  • 轮询法
  • 随机法
  • 源地点哈希
  • 加权轮询
  • 加权随机
  • 最小连接数

插播点别的

忽然想到一个比较故意思的工具:在微博的架构中,应该接纳的是异步拉模型而不是同步推模型。什么意思呢?我们举个例子:鹿晗的粉丝有3000多万,关晓彤的粉丝有1000多万。如果他俩发了条微博的同时需要往这4000万粉丝的内容列表中(假设这里用的是关系型数据库)推送已往,这就是简化的同步推模型。

那这样有什么缺点呢?首先,这样会消耗大量的数据库连接资源,更重要的是这样不太切合软件计划规定:由于对于两人的粉丝来说,分别由有3000多万和1000多万的数据是冗余的。如果说陈赫、邓超在第一时间对他俩的微博进行了点赞,此时瓶颈就来了:适才往数据库里插入4000多万感觉还可以担当,但是如今四人的粉丝数加起来好几亿了,同时往数据库插这么多数据是不是感觉不太合适?

不要紧,我们如今换一种内容推送方法:我们如今不用同步推了,而是用异步拉。我们每次在手机上刷微博的时间,假如想要看到更新的内容是不是都要下拉刷新获取?没错这就是异步拉。异步拉有什么好处呢?很显着的一个好处就是可以将热门数据进行会合管理,而且不用进行大量的数据插入冗余操作。别的对系统资源的消耗也较少。那么微博内容从那里拉呢?主流的解决方案是把热门内容放到缓存中,每次都去查缓存,这样可以淘汰I/O操作而且制止发生因资源枯竭造成的超时问题。

PS:写到这里的时间我开始水群了,如今回过头来继续写感觉没法儿写下去了。太久没写博客了,许多知识略有忘记。不外今日算是在脑海中把相关的工具梳理了一下,由于毕业计划也计划做高并发大流量相关的工具。今日算是蹭蹭热门趁便温习一下从前学过的知识吧~

实在高可用性架构还包括服务升级、服务降级、数据备份、失效转移等等。关于网站高可用、高性能、高拓展方面感觉实在另有许多许多工具来写。但是有些知识没有肯定的实践履历呢,又不能很好的把握。那么就等我背面再逐步聊吧~

最后,打个广告:之前不停在简书上写技能博客,但是逐步地感觉简书杂七杂八的内容太多了,一点也不纯粹。计划以后休闲娱乐的工具就放到简书上写吧,技能博客逐步会转移到掘金的阵地上来了。 关注简书作者-EakonZhao

为什么鹿晗微博发广告ins

果真明星的一点微小的活动就会被无穷放大,被种种人过分解读。

很显着了, 一连7天的微博故事是为自己的专辑做宣传

不知道大家有没有一样特殊热爱的事情,好比很嘻歡美术、舞蹈、足球要么音乐, 在自己所爱的范畴里,所有都纯粹而优美 ,当画画、舞蹈、踢球、唱歌!的时间能感到幸福和快乐。 爱到极致就会把这件事情作为毕生的梦想 ,想当画家、舞蹈艺术家、职业足球选手、歌手。


鹿晗以歌手出道,从小就嘻歡音乐, 音乐对他来说,是初心,是快乐

有听到一些人跟我说过, 鹿晗的音乐他不太能担当。这实在很正常 ,他做的音乐是西欧小众音乐,也是他嘻歡的音乐,像trap,drop,future bass……这些气势派头和元素,在国内少见,如今大多人嘻歡抒怀民谣之类的音乐,担当这些潮流先辈的音乐元素对他们来说比较困难。

可即便如此困难,他还是想积极做音乐。由于热爱。
对于自己热爱的事情,会百分百要么百分之一百二地积极。

他最想先被承认的是音乐,是他 对每个环节严格把控,认真积极高要求状态下做的音乐,用来证实自己的音乐,怎么会用来内在别人 ?

粉黑的过分解读已经 污染了鹿晗对音乐纯粹的热爱 。他想做的是在纯西方的国际化体系中,逐步形成了自己立于国际化前端,却又有着东方印记的音乐气势派头体系。

内在?格局也太小了。

鹿晗和粉丝的日常互动真的太有爱了啊,15年粉丝催他发自拍,他发完自拍后也开顽笑说轮到粉丝了,于是就发了微博:你们也发点自拍我看看。哈哈哈哈皮一下很开心啊。

鹿晗 发点自拍我看看 鹿老师ins画风和微!博画风从来都是不一样的,微博重要是广告宣传、鞋子手表螃蟹饺子,次要才是自拍,而ins向来比较高峻上。

铁粉常常诉苦鹿晗很久没发自拍了,为此,鹿晗也特意发了一条微博。鹿晗微博写道:你们也发点自拍我看看。这条互动倒是很好玩,有点像是同窗之间互动,嘻歡这样的明星!有的时间我们太把明星当明星了,但是鹿晗这种可以多来几个!

鹿晗 发点自拍我看看就!是和粉丝互动一下,鹿哥和粉丝的互动都很暖心。和我们的间隔不近也不远就是方才好,他把粉丝当家人。让大家记忆最深的,还是东直门。真的泰半夜没有人,他忽然出如今镜头前。那是刚返回,粉丝都等他身材恢复,做好决定。没想到那一夜会来。

鹿晗和鹿饭不停以来,相坑相害,相互折磨,从未停止。你们是不会明白的我们的虐恋.

返回搜狐,察看更多

本文网址: http://www.directapkdownloader.com/d/2020631193135_7937_2916355471/home