热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

鹿晗关晓彤公开恋情,是如何把新浪微博的服务器搞垮的?

鹿晗关晓彤公开恋情,是如何把新浪微博的服务器搞垮的?我觉得不像数据库挂了,微博这种级别的架构根本不是简单的分布式server+DB就能抗住的,别说鹿晗关晓彤搞个大新闻,就算平时运营的压力也扛不住。刚

鹿晗关晓彤公开恋情,是如何把新浪微博的服务器搞垮的?

 

我觉得不像数据库挂了,微博这种级别的架构根本不是简单的分布式server+DB就能抗住的,别说鹿晗关晓彤搞个大新闻,就算平时运营的压力也扛不住。

刚才王高飞说加一千台服务器暂时顶住了,数据库是不可能临时这么弹性伸缩的,能伸缩的无非就是HTTP Server、各中间层服务、缓存或消息队列。

 

大概是微博自动扩容的算法没写好,或者没敢全交给算法来做。比如你发现流量升高了,自动下单加几十台服务器能接受,突然加一千台要是程序出bug的话微博得白支出多少钱啊……多半是这个量级的扩容需要运维手工来确认。

而且是在长假最后一天的中午爆发的,不是访问高峰期,服务器也准备不足。明星公布恋情这件事又没法预警,谁知道他们啥时候心血来潮忽然介绍女朋友啊……

 

 

根据目前已有的信息猜测是数据库被压垮了,先发猜想,稍后写个程序分析当时的点赞评论转发数据验证猜想。微博这样的网站,如果被大流量压垮,不太可能是非必需字段没有容错。之前经历过几次热门事件,我相信在爆发热点新闻的时候,微博会暂时牺牲一点数据准确性来保证关键服务可用。也就是说,光读请求很难压垮微博。根据事故时的微博点赞数、转发数、评论数、评论的回复数、评论的点赞数、转发的评论转发点赞数等的量,微博极可能是由于事发当时需要写入数据库的请求太多(写行为峰值可能达到了几十万甚至更高),以及大部分写都会落到同一条微博上,而且某些写操作还需要触发相应的其他写行为(回复评论需要通知评论者、点赞需要进关注者 feed 等),数据库压力过大扛不过来,最终跪了一会儿。其实如果缓存做好,这时候还是可以满足核心数据读请求的(当然微博缓存做的并不好,我微博个人页数据错误很久了反馈也没用)。如果数据库压力过大时对部分写请求异步化,或者考虑暂时抛弃部分请求换取稳定性,当然这样也各有利弊,不一定是好的。可以抓取当时鹿晗发的微博的所有评论转发回复点赞的时间,看下故障前几秒成功的写行为究竟有多少。不负责任的未经验证的猜测(画图水平有限,省略了部分过程,但是从上下两个过度的箭头数,大致表达了很多请求是读且未压到数据库,将就看吧[手动捂脸.jpg]):

 

 

 

没有对比就没有伤害啊!关晓彤热议趋势硬生生涨了1122.9%

 

 


推荐阅读
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 本文介绍了如何在两个Oracle数据库(假设为数据库A和数据库B)之间设置DBLink,以便能够从数据库A中直接访问和操作数据库B中的数据。文章详细描述了创建DBLink前的必要准备步骤以及具体的创建方法。 ... [详细]
  • 本文详细介绍了HTTP协议中的缓存机制,包括ETag的使用方法和304状态码的意义,探讨了强缓存与协商缓存的区别及其工作原理,旨在帮助开发者更好地理解和优化网站性能。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 本文介绍了GitHub上的一些Python开源项目,特别是IM(即时通讯)技术的应用。通过Sealtalk项目,探讨了如何利用开源SDK提升开发效率。 ... [详细]
  • 本文探讨了在SQL Server 2008环境下,当尝试删除拥有数据库架构的用户时遇到的问题及解决方案,包括如何查询和更改架构所有权。 ... [详细]
  • 本文详细记录了腾讯ABS云平台的一次前端开发岗位面试经历,包括面试过程中遇到的JavaScript相关问题、Vue.js等框架的深入探讨以及算法挑战等内容。 ... [详细]
  • Spring Boot使用AJAX从数据库读取数据异步刷新前端表格
      近期项目需要是实现一个通过筛选选取所需数据刷新表格的功能,因为表格只占页面的一小部分,不希望整个也页面都随之刷新,所以首先想到了使用AJAX来实现。  以下介绍解决方法(请忽视 ... [详细]
  • 探讨密码安全的重要性
    近期,多家知名网站如CSDN、人人网、多玩、开心网等的数据库相继被泄露,其中大量用户的账户密码因明文存储而暴露无遗。本文将探讨黑客获取密码的常见手段,网站如何安全存储用户信息,以及用户应如何保护自己的密码。 ... [详细]
  • Linux环境下MySQL的安装与配置
    本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。 ... [详细]
  • 本文详细记录了 MIT 6.824 课程中 MapReduce 实验的开发过程,包括环境搭建、实验步骤和具体实现方法。 ... [详细]
  • 近年来,区块链技术备受关注,其中比特币(Bitcoin)功不可没。尽管数字货币的概念早在上个世纪就被提出,但直到比特币的诞生,这一概念才真正落地生根。本文将详细探讨比特币、以太坊和超级账本(Hyperledger)的核心技术和应用场景。 ... [详细]
author-avatar
单纯只是一2502904797
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有