新浪微博大家都熟悉,今天学习了一下新浪微博的架构,对学习到的内容进行总结:

随着应用规模的增长,衍生出的第二代架构对业务功能进行了模块化、服务化和组件化,后台系统从php替换为Java,逐渐形成SOA架构,在很长一段时间支撑了微博平台的业务发展。在此基础上又经过长时间的重构、线上运行、思索与沉淀,平台形成了第三代架构体系。

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

水平分层

水平维度的划分,在大中型互联网后台业务系统的设计中非常基础,在平台的每一代技术体系中都有体现。

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

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

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

垂直延伸技术架构

随着业务架构的发展和优化,平台研发实现了许多卓越的中间件产品,用来支撑核心业务,这些中间件由业务驱动产生,随着技术组件越来越丰富,形成完备的平台技术框架,大大提升了平台的产品研发效率和业务运行稳定性。

区别于水平方向上层依赖下层的关系,垂直方向以技术框架为地基支撑点,向两侧驱动影响业务架构、监控平台、服务治理平台,下面介绍一下其中的核心组件。

接口层Web V4框架

接口框架简化和规范了业务接口开发工作,将通用的接口层功能打包到框架中,采用了Spring的面向切面(AOP)设计理念。接口框架基于Jersey 进行二次开发,基于annotation定义接口(url, 参数),内置Auth、频次控制、访问日志、降级功能,支撑接口层监控平台与服务治理,同时还有自动化的Bean-json/xml序列化。

服务层框架

服务层主要涉及RPC远程调用框架以及消息队列框架,这是微博平台在服务层使用最为广泛的两个框架。

转载于:https://www.cnblogs.com/mm20/p/11051064.html

《新浪微博平台架构》---阅读相关推荐

  1. 阅读《SentiLARE: Sentiment-Aware Language Representation Learning with Linguistic Knowledge》

    SentiLARE: Sentiment-Aware Language Representation Learning with Linguistic Knowledge Abstract 现有的预训 ...

  2. Align before Fuse: Vision and Language Representation Learning with Momentum Distillation

    ALBEF:Align before Fuse: Vision and Language Representation Learning with Momentum Distillation 论文链接 ...

  3. # 互信息最大化[视角统一]:Align before Fuse: Vision Language Representation Learning with Momentum Distillation

    互信息最大化[视角统一]:Align before Fuse: Vision and Language Representation Learning with Momentum Distillati ...

  4. 【论文模型讲解】VideoBERT: A Joint Model for Video and Language Representation Learning

    文章目录 前言 0 摘要 1 Introduction 2 相关工作 3 模型 3.1 BERT 3.2 VideoBERT 4 实验与分析 4.1 数据集 4.2 视频和语言预处理 4.3 模型预训 ...

  5. [论文学习]TDN: An Integrated Representation Learning Model of Knowledge Graphs

    [论文学习以及翻译]TDN: An Integrated Representation Learning Model of Knowledge Graphs 文章主要内容 摘要 前言 相关工作 基于T ...

  6. Kaiming He论文阅读笔记三——Simple Siamese Representation Learning

    Kaiming He大神在2021年发表的Exploring Simple Siamese Representation Learning,截至目前已经有963的引用,今天我们就一起来阅读一下这篇自监 ...

  7. [论文阅读] iCaRL: Incremental Classifier and Representation Learning

    论文地址:https://openaccess.thecvf.com/content_cvpr_2017/html/Rebuffi_iCaRL_Incremental_Classifier_CVPR_ ...

  8. 自然语言处理学习——论文分享——A Mutual Information Maximization Perspective of Language Representation Learning

    资料放在前面:https://blog.csdn.net/Arnetminer/article/details/105840669 文章的贡献如下: (1)提出了一个基于最大化MI的理论框架来理解词表 ...

  9. CVPR 2020 《12-in-1: Multi-Task Vision and Language Representation Learning》论文笔记

    目录 简介 动机 贡献 方法 实验 简介 本文是在NIPS 2019 ViLBERT上的拓展. 论文链接 动机 本文修改了ViLBERT的预训练过程,有两个小修改:1. 对regions进行mask时 ...

  10. 论文阅读Unsupervised Corpus Aware Language Model Pre-training for Dense Passage Retrieval

    密集文本检索的无监督语料库感知语言模型预训练 ACL2022 论文链接 摘要 最近的研究证明了使用微调语言模型(LM)进行密集检索的有效性.然而,密集检索器很难训练,通常需要经过精心设计的微调管道才能 ...

最新文章

  1. Go开发之路 -- 指针类型
  2. angularJS的controller之间如何正确的通信
  3. 在 ubuntu 上编译 qtopia-2.2.0问题
  4. java 桥 word_java导出word的6种方式(转发)
  5. openssl-1.0.1e for arm
  6. Vue为何采用异步渲染
  7. Windows下判断文件是否存在
  8. MongoDB简单CRUD场景
  9. 【图像配准】基于matlab GUI Powell+蚁群算法图像配准【含Matlab源码 928期】
  10. 房友系统服务器地址,房友系统的那些功能,你都知道吗?
  11. 超级计算机summit存储容量,美国Summit超级计算机:采用超过27000块NV计算卡
  12. Java生成随机数公式
  13. 计算机build是什么意思英语,build是什么意思_build的翻译_音标_读音_用法_例句_爱词霸在线词典...
  14. Sublime Text:选择变量的所有实例并编辑变量名称
  15. javascript制作钟表
  16. php+挖矿病毒,Kdevtmpfsi 挖矿病毒处理方式
  17. 具有对称性质的单参数混沌镜像系统的切换控制
  18. 网站用户行为日志采集和后台日志服务器搭建
  19. informatica 遇到ORA-26002
  20. 超女选秀C语言程序设计,结构体数组 2013年计算机二级C语言程序设计考试大纲...

热门文章

  1. Arduino 串口读写函数快慢/时间花费
  2. uni-app打包上架vivo应用市场踩坑
  3. 解读华为的流程与 IT 管理部门
  4. 创业之前你要先了解3大要点!!
  5. SQL 常用英文单词
  6. mysql转储导入错误_将MySQL转储应用于RDS时出现“无法解析表名”错误
  7. Adobe Premiere Pro cs6 精简版 0xc000007b 应用程序无法正常启动
  8. 天津滨海农商银行数据脱敏建设实践
  9. 计算机格式化没有fat32,windows里面没有FAT32格式化命令
  10. upc 生命曲线 线段树+lazy