范冰冰李晨分手让微博一度宕机的原因分析

6月27日晚间,范冰冰、李晨通过微博正式宣布分手。然后微博就一度宕机了……

阿明观察评论:对于微博来说,几次遭遇了明星事件而导致宕机,不知道微博的技术架构到底是什么样子的?

可能,微博技术运维管理员会说:别怪我,都是他们惹的祸……

按照访问量和评论量来看,上亿次的访问,上千万百万的评论与转发,这样的应用压力,对于分布式云计算集群架构来说应该可以承受。但是为何微博屡次三番遭遇明星突发事件而宕机呢?百思不得其解中。

为此搜罗了一下各种微博架构资料,发现了其中的一些蛛丝马迹。分享出来,供各位参考指正。

经历多年的发展微博基层架构也发展了三代架构。

微博平台第一代架构为LAMP架构,数据库使用的是MyIsam,后台用的是php,缓存为Memcache。

第二代架构是MPSS,就是多个端口可以布置在同一服务器上。对业务功能进行了模块化、服务化和组件化,后台系统从php替换为Java,逐渐形成SOA架构,在很长一段时间支撑了微博平台的业务发展。

后来的第三代微博架构在第二代基础上做了优化和升级,第三代技术体系就是为了保障在微博核心业务上快速、高效、可靠地发布新产品新功能。

首先把底层的东西分成基础服务,基础服务里面有分布式的存储,做了一些去中心化、自动化的操作。在基础服务之上有平台服务,把微博常用的应用做成各种小的服务。然后还有应用服务,这个是专门考虑平台各种应用的需求。最上面有API,API就是新浪微博各种第三方应用都在上面跑。

平台服务和应用服务是分开的,这样实现了模块隔离,即使应用服务访问量过大的话,平台服务不会首先影响。微博平台的第三代技术体系,使用正交分解法建立模型:在水平方向,采用典型的三级分层模型,即接口层、服务层与资源层;在垂直方向,进一步细分为业务架构、技术架构、监控平台与服务治理平台。

此外注意一点在推送架构中,针对高并发的长连服务器,就是一台服务器支持10万以上的并发连接。微博采用了Stream Buffer保存用户最近的数据。因为用户可能会有断线的,比如说他发送数据的时候断线半分钟,微博需要把这半分钟补给他。这就是微博的推送架构。

当然,微博平台需要为用户提供安全及良好的体验应用,以及为开发者营造一个公平的环境,所以我们的接口需要清晰安全的规则。从一个APP调用我们的接口,需要几个阶层,需要划分不同的业务模块。第二个是安全层。第三个是权限层。这是我们平台安全的两个维度,一个接口安全,一个是内容安全。

一个好的架构还需要举行高可用性。全球业界的指标,亚马逊云S3是99.9%,EC2是99.5%,Facebook在高可用性这方面没有承诺的,没有强调接口可用性。微博平台目前承诺的是99.95%,就是说一天365天故障率应该小于9小时。这个怎么达到?第一要做容量规划,要做好监控以及入口的管理,就是说有些服务如果访问量过了的话,要有一个开关可以拦住他。比如说微博平台要做L1的cache,剩余空间有多少,比如说80%,就说明这个数据有可能会丢失,有可能会对微博系统造成影响。

因此,对于接口监控,微博拥有Google维度的接口监控,包括访问错误失败率。在接口监控架构上,对监控的指标尽量量化。比如说他延迟30秒是小问题,如果是延迟10分钟就要立即采取措施了,就是所有可以量化的指标都要量化。

微博平台需要解决突然高并发的访问量压力问题,这是需要做一个软件系统需要解决的本质问题。因此微博第一版解决发布规模问题,第二版是解决数据规模的问题,第三版是解决服务化的问题。将复杂的问题简单化之后,才可以设计出一个容易扩展的大规模架构。

以上微博架构分析内容整理自微博平台架构师卫向军、微博首席架构师杨卫华的相关发言和文章内容。

 

——Aming编辑评论——

欢迎文末留言评论

文来源:阿明独立自媒体,版权所有,侵权必究,转载请授权

本文章和作者回复仅代表该作者个人观点,不构成任何投资建议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值