- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
平台服务部署及Web框架.pdf
平台服务部署及Web框架
原⽂出处:http://weibo .com/p/ 100 1643875679 132642345
作者:苏星宇,@zhuidawugui
⼤纲
微博平台主要负责微博基础功能。接下来将会介绍
平台 作⽤,以及服务提供 形式
平台Web服务 部署
平台Web框架简介
背景
⽬前整体架构⼤体上分为三层
展现层:⼿机端,主站和第三⽅应⽤,承担相关业务 前端展⽰
适配层:负责服务端和多个展⽰端 接⼜适配
服务层:提供基础功能服务,包括Feed服务,⽤户关系,开放平台和消息箱等
平台作为整个微博架构 基础功能服务层,对外以 ttp接⼜ ⽅式提供服务。接⼜遵
守RESTful规范。接⼜⽰例如下:
关于RESTful ,与其说是规范,其实更像是⼀种架构设计风格。它主要是提供了⼀组
设计原则和约束条件,⼴泛应⽤于C/S或者B/S架构中。要想理解什么是RESTful ,可
以从它 全称⼊⼿--Representational State Transfer ,翻译成中⽂是表现层状态转化。这
段晦涩 ⽂字省略了主语,表现层其实指 是资源 (Resources ) 表现层。核
⼼概念包括
资源是由URI来指定。
对资源 操作包括获取、创建、修改和删除资源,这些操作正好对应 TTP协议
提供 GET 、POST 、PUT和DELETE⽅法。
通过操作资源 表现形式来操作资源。
概括起来,平台对外提供服务 形式就是通过 TTP接⼜对基础资源进⾏存取。
平台服务部署
对平台 定位和服务形式有所了解后,我们看下平台 Web服务部署结构。
平台 服务部署在多个机房中。以北京为例,就有AX 、BX和CX三个机房。⾃建
DNS服务会将⽤户 流量根据不同 运营商切换到不同 机房。
⽤户请求到达服务端后,⾸先会经过反向代理服务器。反向代理 (Reverse Proxy )⽅
式是指以代理服务器来接受公⽹上 连接请求,然后将请求转发给内部⽹络上 服务
器,并将从服务器上得到 结果返回给公⽹上请求连接 客户端,此时代理服务器对
外就表现为⼀个反向代理服务器。平台⽬前使⽤ 反向代理有LVS和Nginx 。
LVS :Linux Virtual Server ,基于IP 负载均衡和反向代理技术
Nginx :基于 TTP 负载均衡和反向代理服务器
关于Nginx ,除了以上提到 之外,还负责集群 健康检查。这个主要是通过Nginx ⾃
带 健康检查模块实现 。Nginx server会轮询后端集群 index .j sp页⾯,如果返回200
则认为服务器正常,请求会正常被转发到该服务器;返回503则进⾏服务器摘除,请
求将不会再到达该服务器。
经过反向代理转发后,请求会到达部署Web应⽤ 应⽤服务器。平台⽬前主要使⽤
Tomcat作为应⽤容器。之后,请求会被统⼀ Web框架解析并处理。稍后会详细讲述
Web框架 内容。
对于上⾏和下⾏不同 请求,请求处理 链路也不同。
以微博核⼼业务Feed流为例。应⽤服务器在收到下⾏请求 (如查询⼀条微博 内容)
时,会直接访问缓存资源,如果命中则直接返回结果给客户端,否则继续查询DB ,
将结果返回客户端。
⽽收到上⾏请求 (如发微博)时,应⽤会将上⾏请求写⼊⼀个消息队列中。由另⼀个
单独 处理应⽤读取消息队列,执⾏上⾏请求 资源操作,⽐如写⼊缓存、更新DB
等等。
这种队列加处理机 上⾏请求模式被平台⼴泛使⽤,主要有以下优点:
解除前端应⽤和后端资源 耦合
削峰填⾕:在请求量很⼤时,队列可以作为缓冲,缓解后端资源 压⼒
由于请求被分配到不同机房,因此多机房之间 数据也需要同步。⽬前我们使⽤虚拟
消息管道WMB来同步机房之间 数据:所有 上⾏请求在到达某个机房后都会通过
WMB重放到其他机房,从⽽保证机房后端资源⼀致。除此之外,为了容灾,后端资
源如缓存,DB 主从集群会分布在不同机房。彼此之间通过应⽤⾃⾝ (Redis、
MySql )或者客户端 (Memcached )来同步主从数据。
平台Web框架
下⾯给⼤家简单介绍下我们使⽤ Web框架。前⾯我们提到,在请求到达应⽤容器
后,⾸先会被统⼀Web框架进⾏处理。⽤户请求在应⽤容器中 整个处理链路如下。
Web框架 处理主要
文档评论(0)