读《亿级用户下的新浪微博平台架构》有感

对我来说,我使用最多的社交app就是微博和qq,准确的来说微博比qq用得更多。众所周知,微博由亿级的用户,每分钟每秒钟的话题点击量都是无法预计的,所有我很好奇微博平台的架构,然后就去阅读了这篇文章。

从文章来看微博平台第一代架构为LAMP架构,数据库使用的是MyIsam,后台用的是php,缓存为Memcache。随着应用规模的增长,衍生出的第二代架构对业务功能进行了模块化、服务化和组件化,后台系统从php替换为Java,逐渐形成SOA架构,在很长一段时间支撑了微博平台的业务发展。

在此基础上又经过长时间的重构、线上运行、思索与沉淀,平台形成了第三代架构体系。

微博平台的第三代技术体系,使用正交分解法建立模型:在水平方向,采用典型的三级分层模型,即接口层、服务层与资源层;在垂直方向,进一步细分为业务架构、技术架构、监控平台与服务治理平台。接下来是从水平分词来讲微博的架构:水平分层

水平维度的划分,在大中型互联网后台业务系统的设计中非常基础,在平台的每一代技术体系中都有体现。这里还是简单介绍一下,为后续垂直维度的延伸讲解做铺垫:

1. 接口层主要实现与Web页面、移动客户端的接口交互,定义统一的接口规范,平台最核心的三个接口服务分别是内容(Feed)服务、用户关系服务及通讯服务(单发私信、群发、群聊)。

2. 服务层主要把核心业务模块化、服务化,这里又分为两类服务,一类为原子服务,其定义是不依赖任何其他服务的服务模块,比如常用的短链服务、发号器服务都属于这一类。图中使用泳道隔离,表示它们的独立性。另外一类为组合服务,通过各种原子服务和业务逻辑的组合来完成服务,比如Feed服务、通讯服务,它们除了本身的业务逻辑,还依赖短链、用户及发号器服务。

3. 资源层主要是数据模型的存储,包含通用的缓存资源Redis和Memcached,以及持久化数据库存储MySQL、HBase,或者分布式文件系统TFS以及Sina S3服务。

水平分层有一个特点,依赖关系都是从上往下,上层的服务依赖下层,下层的服务不会依赖上层,构建了一种简单直接的依赖关系。

与分层模型相对应,微博系统中的服务器主要包括三种类型:前端机(提供 API 接口服务)、队列机(处理上行业务逻辑,主要是数据写入)和存储(mc、mysql、mcq、redis 、HBase等)。同时还包括:垂直延伸技术架构,接口层Web V4框架,服务层框架,资源层框架,垂直的监控与服务治理。

由此微博的技术团队,开发了WatchMan系统,应用在所有业务场景中,运维基于此系统完善监控平台,业务和运维共同使用此系统,完成分布式服务治理,包括服务扩容与缩容、服务降级、流量切换、服务发布与灰度。

本文参考文献:PHP100中文献《亿级用户下的新浪微博平台架构》

转载于:https://www.cnblogs.com/sunshine-z/p/11054017.html

读《亿级用户下的新浪微博平台架构》有感相关推荐

  1. 读《豆瓣的基础架构》有感

    豆瓣整个基础架构可以粗略的分为在线和离线两大块.在线的部分和大部分网站类似:前面用LVS做HA,用Nginx做反向代理,形成负载均衡的一 层:应用层主要是做运算,将运算结果返回给前面的用户,DAE平台 ...

  2. 15读《算法基础》有感——决策树

    15读<算法基础>有感--决策树 学完本学期的<算法设计与分析基础>,想对"决策树"做进一步的了解,于是读了Rod Stephens<算法基础> ...

  3. simplify逆向_Simplify-SDK-一种以代码形式管理基础架构的框架。

    simplify逆向 When working with AWS services, you've got several choices to build and deploy your lambd ...

  4. View 5.1 重装上阵(4—基础架构篇)

    从底层架构方面来看,VIEW 5.1最大的改进在于引入了Content-Based Read Cache(CBRC) 技术,大大降低了部署桌面虚拟化所带来的IOPS风暴,同时大大降低了对于存储的压力和 ...

  5. 聊聊 Kafka: Kafka 的基础架构

    一.我与快递小哥的故事 一个很正常的一个工作日,老周正在忙着啪啪啪的敲代码,办公司好像安静的只剩敲代码的声音.突然,我的电话铃声响起了,顿时打破了这种安静. 我:喂,哪位? 快递小哥:我是顺丰快递的, ...

  6. 机器学习的中流砥柱:用于模型构建的基础架构工具有哪些?

    本文转载自公众号"读芯术"(ID:AI_Discovery) 人工智能(AI)和机器学习(ML)已然"渗透"到了各行各业,企业们期待通过机器学习基础架构平台,以 ...

  7. 数据中心基础架构 22 年演进

    01 前言 当今世界正处在信息技术(IT)创新的黄金时代.由机器学习.物联网和大规模可扩展应用支持的云计算.移动应用.大数据分析的巨大力量正在重塑商业和社会的方方面面.而这场IT复兴的中心,则是超大规 ...

  8. k86跟mysql_MySQL【基础架构】

    一.前言 平时我们使用数据库,看到的通常都是一个整体. select * from T where ID=10: 对于上述语句,我们看到的只是输入一条语句,返回一个结果,却没有关注这条语句在 MySQ ...

  9. 译 | .NET Core 基础架构进化之路(一)

    原文:Matt Mitchell 翻译:Edi Wang 随着 .NET Core 3.0 Preview 6 的推出,我们认为简要了解一下我们基础设施系统的历史以及过去一年左右所做的重大改进会很有用 ...

  10. 【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的

    文章目录 1 一条SQL查询语句是如何执行的 2 mysql体系结构 3 InnoDB存储引擎 4 总结 1 一条SQL查询语句是如何执行的 ​ 通常我们使用数据库,都是将数据库看成一个整体,我们的应 ...

最新文章

  1. python 修改计算机名_静心学数据分析002-python基础
  2. Java中如何合并有个具有相同key的Map
  3. input 的read only 和 disable的区别
  4. Vagrant 管理部署 VirtualBox (推荐使用)
  5. 银行、航空软件结构图
  6. Windows7无损分区
  7. java 绝对路径_java 获取绝对路径
  8. 分布式文件系统(HDFS)与 linux系统文件系统 对比
  9. Java命名规范(建议收藏)
  10. uva 10474 - Where is the Marble?
  11. 查询ORACLE数据库操作记录
  12. Docker Kubernetes k8s 从入门到精通 阿里云实战命令
  13. 前端面试宝典-技巧篇
  14. 深入浅出 卡尔曼滤波
  15. java Vector 在多线程使用中需要注意的问题
  16. 我的开源项目:C++ Qt高仿QQ影音视频播放器
  17. 【数据统计】— 峰度、偏度、点估计、区间估计、矩估计、最小二乘估计
  18. 180度舵机使用经验
  19. 整理:状态机的C语言编程
  20. 2022年应届大学毕业生就业分析报告

热门文章

  1. 选对流程引擎,玩转流程设计不是梦
  2. Linux修改只读文件权限
  3. 2018/7/31-zznu-oj-问题 F: 手机密码--【裸dfs+for循环即可!——据说三个小时内只有两个人读完了题意并轻松AC了】...
  4. hive运行报错Error during job, obtaining debugging information..FAILED: Execution Error, return code 2
  5. GitHub 官宣:弃用 trending 热榜,开发者炸锅了
  6. PyTorch基础:Tensor的组合与分块
  7. zmud之自动解谜:不用数据库实现自动解谜的原理。
  8. CSP-X模拟题第三套-信心赛题解
  9. 攻防世界入门 web 十二题
  10. selenium 浏览器打开新标签页