zoukankan      html  css  js  c++  java
  • 《亿级用户下的新浪微博平台架构》读后感

    原文地址:https://mp.weixin.qq.com/s/8bb1E4YOvGWZo3pfe8gFBgs       

        今天看了一篇PHP100中文网发表的文章《亿级用户下的新浪微博平台架构》,感触如下:

            新浪的用户量是大家有目共睹的,在2014年3月公布的月活跃用户(MAU)已经达到1.43亿,2014年新年第一分钟发送的微博达808298条,如此巨大的用户规模和业务量,需要高可用(HA)、高并发访问、低延时的强大后台系统支撑。微博平台第一代架构为LAMP架构,数据库使用的是MyIsam,后台用的是php,缓存为Memcache。随着应用规模的增长,衍生出的第二代架构对业务功能进行了模块化、服务化和组件化,后台系统从php替换为Java,逐渐形成SOA架构,在很长一段时间支撑了微博平台的业务发展。在此基础上又经过长时间的重构、线上运行、思索与沉淀,平台形成了第三代架构体系。

            看一下一张图:

    下面就是介绍他们的第三代技术体系:

    水平分层:水平分层有一个特点,依赖关系都是从上往下,上层的服务依赖下层,下层的服务不会依赖上层,构建了一种简单直接的依赖关系。与分层模型相对应,微博系统中的服务器主要包括三种类型:前端机(提供 API 接口服务)、队列机(处理上行业务逻辑,主要是数据写入)和存储(mc、mysql、mcq、redis 、HBase等)。

    垂直延伸技术架构:随着业务架构的发展和优化,平台研发实现了许多卓越的中间件产品,用来支撑核心业务,这些中间件由业务驱动产生,随着技术组件越来越丰富,形成完备的平台技术框架,大大提升了平台的产品研发效率和业务运行稳定性。区别于水平方向上层依赖下层的关系,垂直方向以技术框架为地基支撑点,向两侧驱动影响业务架构、监控平台、服务治理平台,下面介绍一下其中的核心组件。

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

    服务层框架:MCQ消息队、Motan RPC框架。

    资源层框架:对象库、SSDCache。

    垂直的监控与服务治理:随着服务规模和业务变得越来越复杂,即使业务架构师也很难准确地描述服务之间的依赖关系,服务的管理运维变得越来难,在这个背景下,参考google的dapper和twitter的zipkin,平台实现了自己的大型分布式追踪系统WatchMan。

    总结:现在,技术框架在平台发挥着越来越重要的作用,驱动着平台的技术升级、业务开发、系统运维服务,本文限于篇幅限制,没有展开介绍,后续会不断地介绍核心中间件的设计原则和系统架构。

  • 相关阅读:
    kafka官方的kafka-server-start.sh不能关闭kafka进程解决办法
    Linux如何切换图形界面和命令行界面
    2019-9-28:渗透测试,基础学习,DNS投毒
    2019-9-28:渗透测试,基础学习,pgp常量,逻辑运算,DNS投毒,笔记
    2019-9-10:渗透测试,基础学习,nmap扫描命令,php基本语法学习,笔记
    2019-9-11:渗透测试,Kill远控软件,初接触
    2019-9-27:渗透测试,metasploit-framework初接触
    2019-9-26:渗透测试,基础学习,js正则以及什么是目录扫描,笔记
    2019-9-26:渗透测试,基础学习,nmap扫描kali虚拟机服务
    2019-9-25:渗透测试,基础学习,Hydra BP爆破,js基本知识,banner信息收集笔记
  • 原文地址:https://www.cnblogs.com/qilin20/p/11042183.html
Copyright © 2011-2022 走看看