架构升级之始
随着微博应用规模不断扩大,初代架构难以满足业务需求。于是第二代架构应运而生,它将业务功能模块化、服务化和组件化。大概在那个时候,微博后台系统从php替换成Java,在多年前逐步形成SOA架构,有力地支撑了微博平台很长时间的业务发展,也让微博业务能更稳定地应对不断增长的用户量。
第三代技术体系基础
微博平台的第三代技术体系采用正交分解法建模型。水平方向是典型的三级分层模型,即接口层、服务层与资源层。这种分层在大中型互联网后台业务系统设计里很常见,从初代到这一代技术体系都有体现,为系统搭建了稳定基础,能让不同层次分工明确,实现更高效运行。
服务器类型架构
和分层模型对应的是微博系统的服务器类型。主要有前端机、队列机和存储。前端机提供API接口服务;队列机处理上行业务逻辑,着重于数据写入;存储包括mc、mysql、mcq、redis、HBase等多种形式。以实际情况而言,在处理高并发业务时,这些不同类型的服务器相互配合,确保微博数据的正常交互与储存。
接口框架特性
接口框架基于Jersey二次开发,利用annotation定义接口参数和路径。它内置Auth、频次控制、访问日志等功能,还能支撑接口层监控平台与服务治理,同时实现自动化的Bean-json/xml序列化。在实际应用中,当有大量用户同时访问接口时,接口框架这些功能能有效控制访问,避免系统崩溃,保证平台稳定性。
服务层框架要点
服务层主要使用RPC远程调用框架和消息队列框架。其中微博平台大量使用的MCQ消息队列服务基于MemCache协议,数据持久化写入BerkeleyDB,只有get/set两个命令,便于监控也有丰富的客户端库,性能比通用的MQ高很多倍。在日常运行中,这些框架让服务层之间的通信和数据传递更加高效有序,提高系统整体性能。
资源层框架亮点
资源层框架众多,像封装MySQL与HBase的DAL中间件、定制化计数组件、支持分布式的Proxy等。微博还把SSD应用在分布式缓存场景,将传统模式扩展为Redis/MC + SSD Cache + Mysql方式。SSD Cache作为L2缓存,解决了MC/Redis成本高、容量小及穿透DB导致数据库压力大的问题。并且所有日志采集点分布在技术框架中间件中,能更好地监控系统运行。
你觉得微博平台这种技术架构的不断升级,未来还可能带来哪些新变化?欢迎在评论区留言讨论,如果觉得这篇文章有用,别忘了点赞和分享!