SlideShare una empresa de Scribd logo
1 de 19
QQShow2.0QQShow2.0 重构历程重构历程
QQQQ 秀开发组秀开发组
QQQQ 秀秀 1.01.0 的技术架构的技术架构
存储层
DB/Files
接口层
数据存取、操作 API/ 接口 Server/File Server/ 流程 Server…
应用层
ITEM 显示 / 商城 / 用户换装 / 用户个人形象管理 /QQ Client 表
现 /Chat Room 表现 /Web 表现 / 内部管理系统…
系统层
数据缓存 / 图片合成 Server/ 数据
维护 Daemon…
系统 / 存储
层
Web 应用 QQ Client 应用 Chat Room 应用
数据存取、操作 API
UDP File ServerHTTP File Server
User DB Item Info DB Item/Image Files
DB Cache Server File Cache Server图片处理
Server
接口层
应用层
数据维护 Daemon
各层细化的结构图及数据流各层细化的结构图及数据流
只能提供只能提供 GIFGIF 图片服务图片服务 ,, 限制了应用的进一步发展限制了应用的进一步发展
QQQQ 秀服务抛开商城应用秀服务抛开商城应用 ,, 简单而言其实就是给应用提供一套图片下载简单而言其实就是给应用提供一套图片下载
展示的系统展示的系统 ,, 在互联网应用初期在互联网应用初期 ,, 由于带宽以及用户机器性能原因由于带宽以及用户机器性能原因 ,, 我我
们只能提供们只能提供 GIFGIF 图片展示用户个性化的形象图片展示用户个性化的形象 ,, 而且也能吸引用户来玩而且也能吸引用户来玩 ,,
但是随着但是随着 QQQQ 秀业务的发展秀业务的发展 ,, 用户也不再满足于简单的图形化形象的展用户也不再满足于简单的图形化形象的展
示示 ..
商城应用性能存在一定的瓶颈商城应用性能存在一定的瓶颈
作为公司最早最成熟产品作为公司最早最成熟产品 ,, 原有的商城设计承受了大于设计容量很多倍原有的商城设计承受了大于设计容量很多倍
的考验的考验 ,, 存在重新规划的需求以满足后续业务的新生存在重新规划的需求以满足后续业务的新生 ..
服务可运营性不足服务可运营性不足
我们提供的服务在运行期缺少跟踪的手段我们提供的服务在运行期缺少跟踪的手段 ,, 来了投诉也没有个清晰的渠来了投诉也没有个清晰的渠
道来获取相应的信息道来获取相应的信息 ,, 在容灾建设方面也缺少快速恢复的手段在容灾建设方面也缺少快速恢复的手段 .. 整个服整个服
务缺少必要的实时化监控务缺少必要的实时化监控 . IDC. IDC 分布等分布等 ..
运营的一些数据缺少数据支撑运营的一些数据缺少数据支撑
不能满足业务精细化运行的需要不能满足业务精细化运行的需要
前台用户交互部分和用户数据逻辑部分耦合度过高前台用户交互部分和用户数据逻辑部分耦合度过高
QQQQ 秀秀 1.01.0 技术架构的一些技术架构的一些 "" 困困
惑惑 ""
QQQQ 秀秀 2.02.0 要解决的要解决的 "" 困惑困惑 ""
在提供一套图形形象的基础上在提供一套图形形象的基础上 ,, 提供基于提供基于 flashflash 的的
形象展示形象展示 ,, 并且把并且把 flashflash 形象作为形象作为 QQQQ 秀形象的主秀形象的主
要应用要应用 ,, 为业务后续的发展提供更丰富的展示平为业务后续的发展提供更丰富的展示平
台台
在用户数快速增长的环境下解决商城性能问题在用户数快速增长的环境下解决商城性能问题
提高服务的可运营性提高服务的可运营性 ,, 提高服务的质量提高服务的质量
支撑业务发展所必需了解的运营数据支撑业务发展所必需了解的运营数据
商城前后台逻辑实现用户交互以及数据逻辑的分商城前后台逻辑实现用户交互以及数据逻辑的分
离离 ,, 方便后续业务的扩展以及简化开发方便后续业务的扩展以及简化开发
QQQQ 秀秀 2.02.0 商城子系统商城子系统
Web Server/CGI
TTC-cache
商城 DB
TTC-cache
社区 DB
TTC-cache
活动 DB
批价发货 Server
商城管理端 /Daemons
{UIND/USD 等非逻辑层并且有状
态服务 } 应用容灾机制实现 IP 的
可替换 , 但不能热备
通 过 Agent
动 态 获 取
DBC 服务接
口信息
{GD Server/ OIDB/ 消息中转 Server// 搜索引擎
等无状态逻辑层服务 } 属于逻辑层服务 , 应用
容灾备份机制实现 N+1 互备
{DataProxy} 属于逻辑层服务 , 应用容灾
备份机制实现 N+1 互备
各类底层服务 /TCP 服务 /UDP 服务 / 文件储存
服务 /DB 储存服务
通 过 Agent
获取相应服
务接口信息
通 过 Agent
动 态 获 取 相
应 服 务 接 口
信息
Web Server/CGI
TTC-cache
商城 DB
TTC-cache
社区 DB
TTC-cache
活动 DB
批价发货 Server
商城管理端 /Daemons
{UIND/USD 状态服
务 } 应用容灾机制实
现 IP 的可替换 , 但不
能热备
通 过 Agent
动 态 获 取
DBC 服务接
口信息
{GD Server/ OIDB 无状态逻辑
层服务 } 属于逻辑层服务 ,
应用容灾备份机制实现 N+1
互备
{DataProxy} 属于逻辑层服务 , 应用容灾
备份机制实现 N+1 互备
底层服务 /TCP 服务 /UDP 服
务 / 文件储存服务 /DB 储存服
务
通 过 Agent
获取相应服
务接口信息
通 过 Agent
动 态 获 取 相
应 服 务 接 口
信息
QQQQ 秀秀 2.02.0 商城子系统商城子系统
面向面向 QQQQ 秀用户访问后台秀用户访问后台 DBDB 全部通过全部通过 DBC/TTCDBC/TTC 层代理,层代理, DBCDBC 屏屏
蔽蔽 TTCTTC 的分布,的分布, TTCTTC 屏蔽屏蔽 DBDB 的分布,既有的分布,既有 cachecache 能力,又能有效能力,又能有效
的屏蔽后台的屏蔽后台 DBDB 物理分布信息,给后台数据的扩容以及迁移带来很大物理分布信息,给后台数据的扩容以及迁移带来很大
的便利。另外的便利。另外 DBCDBC 按业务按业务 DBDB 细分成细分成 1010 种类型(当前实际部署种类型(当前实际部署 55 种种
类型),部署在一台服务器上为一组,一共类型),部署在一台服务器上为一组,一共 33 组提供中转服务。组提供中转服务。
面向管理端面向管理端 /daemon/daemon ,考虑到,考虑到 TTCTTC 对部分对部分 SQLSQL 功能的支持不能满足功能的支持不能满足
业务的需求,这部分时直连业务的需求,这部分时直连 DBDB 解决。后续持续对管理端解决。后续持续对管理端 /daemon/daemon 部部
分功能直连分功能直连 DBDB 部分做进一步改造,达到部分做进一步改造,达到 IPIP 的全部配置化,进一步的全部配置化,进一步
完善完善 TTCTTC 等等。等等。
对公司对公司 // 部门的公共接口服务采用无状态逻辑部门的公共接口服务采用无状态逻辑 serverserver 进行中转进行中转 // 避免避免
用户接入层的频繁变更,采用用户接入层的频繁变更,采用 N+1N+1 的方式进行热备的方式进行热备
对文件存储的服务做到接口服务对文件存储的服务做到接口服务 IP/PORTIP/PORT 的可配置,可以方便的迁的可配置,可以方便的迁
移这类服务部署到其他位置(类似移这类服务部署到其他位置(类似 TTCTTC 对对 DBDB 的物理分布配置功的物理分布配置功
能)能)
前台模块前台模块
采用采用 FlashFlash 引擎,引擎, FlashFlash 负责交互,封装了独立的换装负责交互,封装了独立的换装 jsjs 库负责和库负责和
FlashFlash 通讯通讯
采用采用 AJAXAJAX 技术,用技术,用 XMLXML 作为前后台的通讯媒介,方便调试和自动作为前后台的通讯媒介,方便调试和自动
化测试化测试
前台采用了统一的出错处理机制以及页面填充函数,简化了页面的前台采用了统一的出错处理机制以及页面填充函数,简化了页面的
开发开发
前台相关交互部分尽量都模块化,形成互补干扰的子模块, 比如换前台相关交互部分尽量都模块化,形成互补干扰的子模块, 比如换
装系统、菜单模块、专区模块、一些业务线经常变更的特性做成可装系统、菜单模块、专区模块、一些业务线经常变更的特性做成可
以管理的模块方便更新以管理的模块方便更新
前台模块的基本思路和前台模块的基本思路和 QzoneQzone 的前台优化思路一致的前台优化思路一致 ,, 降低流量降低流量 ,, 提提
高用户体验速度以及提高交互的感受高用户体验速度以及提高交互的感受
逻辑模块逻辑模块
CGI 逻辑
通用逻辑层 / 公共接口
存储层
DB TTC C4A
采用三层架构,使得存储采用三层架构,使得存储 -- 通用逻辑通用逻辑 -- 业务逻辑解藕。业务逻辑解藕。
数据储存模块数据储存模块
QQShow2.0QQShow2.0 商城现在全部采用商城现在全部采用 DBC+TTCDBC+TTC 的方的方
式实现数据存储。式实现数据存储。
定义了定义了 55 类类 DBCDBC 分别中转不同级别的分别中转不同级别的 TTCTTC 请请
求,避免非核心功能的频繁更改影响核心业务求,避免非核心功能的频繁更改影响核心业务
每类每类 DBCDBC 分别部署到分别部署到 55 台不同机器,实现了负台不同机器,实现了负
载均衡和容灾载均衡和容灾
数据储存模块数据储存模块
对于核心数据,例如用户信息和用户物品对于核心数据,例如用户信息和用户物品
分布了在分布了在 100100 个库个库 1000010000 表,这样可以表,这样可以
减少减少 DBDB 写操作时的锁表情况,提高写操作时的锁表情况,提高 DBDB
写效率写效率
尽量将核心数据的尽量将核心数据的 TTCTTC 部署在其部署在其 DBDB 的同的同
台服务器上,可以大大提高台服务器上,可以大大提高 TTCTTC 的读写的读写
速度。速度。
数据储存模块数据储存模块
数据存储模块定义了统一的接口基类,用数据存储模块定义了统一的接口基类,用
模板的方式实现了分别针对模板的方式实现了分别针对 DbDb 、、 TTCTTC 、、
C4AC4A 的三个派生类,使得底层存储和上层的三个派生类,使得底层存储和上层
逻辑独立。逻辑独立。
容灾建设容灾建设
Configserver/AgentConfigserver/Agent 服务服务 ,, 保证服务故障的时候保证服务故障的时候
能快速切换到正常提供服务的备用服务上(主要能快速切换到正常提供服务的备用服务上(主要
应用在逻辑层无状态服务上)应用在逻辑层无状态服务上)
数据层容灾主要靠数据层容灾主要靠 BUBU 公共组件提供支持公共组件提供支持
业务侧暂时保证对核心数据层服务提供业务侧暂时保证对核心数据层服务提供 N+MN+M 热热
备备 ,, 结合结合 Configserver/AgentConfigserver/Agent 服务能快速恢复服服务能快速恢复服
务务
对非核心数据层服务提供冷备服务对非核心数据层服务提供冷备服务 ,, 结合冷备数结合冷备数
据以及据以及 LOGLOG 恢复数据恢复数据 ,, 再借助再借助 AgentAgent 能快速恢能快速恢
复服务复服务
日常运营监控模块日常运营监控模块
利用返回码系统实现了关键调用的情况以及调用时间的利用返回码系统实现了关键调用的情况以及调用时间的
上报,而开发人员只需维护关键调用映射表。(模块间上报,而开发人员只需维护关键调用映射表。(模块间
调用监控)调用监控)
返回码系统记录关键调用路径,并将错误和调用时间超返回码系统记录关键调用路径,并将错误和调用时间超
过过 1s1s 的调用集中以的调用集中以 UDPUDP 的方式发送到的方式发送到 logserverlogserver 集中集中
管理管理
CGICGI 服务的自动化测试监控服务的自动化测试监控
页面级测速监控页面级测速监控
运营数据统计接入运营数据统计接入
QQQQ 秀秀 2.02.0 后台子系统后台子系统
Web 商城
应用层
QQ Client 应用
逻辑层
系 统 / 存 储
层
http_ifsd
Item 后台
管理网站
tcp
Fileserver
商城
ITEM
Nfs_server
qqshow_nfsd
用户
形象
xml
文件
Ts_Server
时间
戳文
件
FasSvr
Image_Exchange_Server
UDP
UDP
UDP
GD Server
qqshow_gd
TCP
Tcp_Item
TCP
nfs
切
CDN
切
CDN
QQQQ 秀秀 2.02.0 后台后台 itemitem 系统系统
商城子系统中的展示商城子系统中的展示 8484 图图 ,, 换装换装 flashflash 文文
件的拉取都是通过件的拉取都是通过 qqshow2-item.qq.comqqshow2-item.qq.com
来拉取来拉取
ClientClient 应用中拉取应用中拉取 flashflash 文件来显示形象也文件来显示形象也
是通过是通过 flash2-item.qq.comflash2-item.qq.com 来拉取来拉取
这两个域名外包这两个域名外包 CDNCDN 实现分布实现分布 ,, 内容部分内容部分
是通过业务管理段实现上传和管理是通过业务管理段实现上传和管理
QQQQ 秀秀 2.02.0 后台后台 GDGD 系统系统
GDGD 服务是商城服务和后台服务的一个接口服务是商城服务和后台服务的一个接口
GDGD 生成了用户形象的生成了用户形象的 XMLXML 配置信息,供配置信息,供
clientclient 来拉取,并由来拉取,并由 clientclient 来负责解析,在来负责解析,在
通过通过 clientclient 主影片负责显示主影片负责显示 qqshowqqshow 形象形象
GDGD 负责负责 NFSDNFSD 以及时间戳服务上相应数以及时间戳服务上相应数
据的更新工作据的更新工作 ..
QQQQ 秀秀 2.02.0 后台快照系统后台快照系统
负责生成负责生成 flashflash 形象对应的形象对应的 GIFGIF 形象形象
通过通过 linuxlinux 系统下的系统下的 firefoxfirefox 进程挂载进程挂载 flashflash 进程来进程来
生成快照生成快照
GDGD 负责通知快照服务负责通知快照服务
快照服务生成快照之后需要通知原有的快照服务生成快照之后需要通知原有的 GIFGIF 形象形象
系统系统 ,, 更新相应的接口更新相应的接口 ,, 保证保证 GIFGIF 形象能正常显形象能正常显
示出来示出来
谢谢谢谢

Más contenido relacionado

La actualidad más candente

20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性liu sheng
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页liu sheng
 
淘宝Java中间件之路
淘宝Java中间件之路淘宝Java中间件之路
淘宝Java中间件之路mysqlops
 
1026 Windows Server 2008 Active Directory 版權管理服務
1026 Windows Server 2008 Active Directory 版權管理服務1026 Windows Server 2008 Active Directory 版權管理服務
1026 Windows Server 2008 Active Directory 版權管理服務Timothy Chen
 
数据访问层开发实践
数据访问层开发实践数据访问层开发实践
数据访问层开发实践xcq
 
开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践Wensong Zhang
 
云存储方案 -技术需求
云存储方案 -技术需求云存储方案 -技术需求
云存储方案 -技术需求taotao1240
 
MySQL 高可用方案及成功案例
MySQL 高可用方案及成功案例MySQL 高可用方案及成功案例
MySQL 高可用方案及成功案例郁萍 王
 
华为软件定义存储架构分析
华为软件定义存储架构分析华为软件定义存储架构分析
华为软件定义存储架构分析Liang Ming
 
ClouDoc brochure_chn_20160824
ClouDoc brochure_chn_20160824ClouDoc brochure_chn_20160824
ClouDoc brochure_chn_20160824sang yoo
 
务实技术讲座系列
务实技术讲座系列务实技术讲座系列
务实技术讲座系列webhostingguy
 

La actualidad más candente (11)

20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
 
淘宝Java中间件之路
淘宝Java中间件之路淘宝Java中间件之路
淘宝Java中间件之路
 
1026 Windows Server 2008 Active Directory 版權管理服務
1026 Windows Server 2008 Active Directory 版權管理服務1026 Windows Server 2008 Active Directory 版權管理服務
1026 Windows Server 2008 Active Directory 版權管理服務
 
数据访问层开发实践
数据访问层开发实践数据访问层开发实践
数据访问层开发实践
 
开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践
 
云存储方案 -技术需求
云存储方案 -技术需求云存储方案 -技术需求
云存储方案 -技术需求
 
MySQL 高可用方案及成功案例
MySQL 高可用方案及成功案例MySQL 高可用方案及成功案例
MySQL 高可用方案及成功案例
 
华为软件定义存储架构分析
华为软件定义存储架构分析华为软件定义存储架构分析
华为软件定义存储架构分析
 
ClouDoc brochure_chn_20160824
ClouDoc brochure_chn_20160824ClouDoc brochure_chn_20160824
ClouDoc brochure_chn_20160824
 
务实技术讲座系列
务实技术讲座系列务实技术讲座系列
务实技术讲座系列
 

Similar a 腾讯大讲堂24 qq show2.0重构历程

新浪微博大规模基于Docker的混合云应用实践 -王关胜
新浪微博大规模基于Docker的混合云应用实践 -王关胜新浪微博大规模基于Docker的混合云应用实践 -王关胜
新浪微博大规模基于Docker的混合云应用实践 -王关胜Weibo Corporation
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境drewz lin
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务drewz lin
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Wensong Zhang
 
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师Enlight Chen
 
Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师Wensong Zhang
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统智杰 付
 
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统Dai Jun
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Wensong Zhang
 
Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02lovingprince58
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Michael Zhang
 
云计算 系统实例与研究现状
云计算 系统实例与研究现状云计算 系统实例与研究现状
云计算 系统实例与研究现状Danny AJ Lin
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabricJohn Chang
 
imobile-beta技术沙龙
imobile-beta技术沙龙imobile-beta技术沙龙
imobile-beta技术沙龙posestudio
 
企业系统商务智能设计
企业系统商务智能设计企业系统商务智能设计
企业系统商务智能设计George Ang
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践Wensong Zhang
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践lovingprince58
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践drewz lin
 

Similar a 腾讯大讲堂24 qq show2.0重构历程 (20)

新浪微博大规模基于Docker的混合云应用实践 -王关胜
新浪微博大规模基于Docker的混合云应用实践 -王关胜新浪微博大规模基于Docker的混合云应用实践 -王关胜
新浪微博大规模基于Docker的混合云应用实践 -王关胜
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务
 
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
 
Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
 
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
 
Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
 
云计算 系统实例与研究现状
云计算 系统实例与研究现状云计算 系统实例与研究现状
云计算 系统实例与研究现状
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric
 
imobile-beta技术沙龙
imobile-beta技术沙龙imobile-beta技术沙龙
imobile-beta技术沙龙
 
Hic2011
Hic2011Hic2011
Hic2011
 
企业系统商务智能设计
企业系统商务智能设计企业系统商务智能设计
企业系统商务智能设计
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
Taobao base
Taobao baseTaobao base
Taobao base
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 

Más de George Ang

Wrapper induction construct wrappers automatically to extract information f...
Wrapper induction   construct wrappers automatically to extract information f...Wrapper induction   construct wrappers automatically to extract information f...
Wrapper induction construct wrappers automatically to extract information f...George Ang
 
Opinion mining and summarization
Opinion mining and summarizationOpinion mining and summarization
Opinion mining and summarizationGeorge Ang
 
Huffman coding
Huffman codingHuffman coding
Huffman codingGeorge Ang
 
Do not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar textDo not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar textGeorge Ang
 
大规模数据处理的那些事儿
大规模数据处理的那些事儿大规模数据处理的那些事儿
大规模数据处理的那些事儿George Ang
 
腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势George Ang
 
腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程George Ang
 
腾讯大讲堂04 im qq
腾讯大讲堂04 im qq腾讯大讲堂04 im qq
腾讯大讲堂04 im qqGeorge Ang
 
腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道George Ang
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化George Ang
 
腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间George Ang
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨George Ang
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站George Ang
 
腾讯大讲堂01 移动qq产品发展历程
腾讯大讲堂01 移动qq产品发展历程腾讯大讲堂01 移动qq产品发展历程
腾讯大讲堂01 移动qq产品发展历程George Ang
 
腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagement腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagementGeorge Ang
 
腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享George Ang
 
腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍George Ang
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍George Ang
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍George Ang
 
腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享George Ang
 

Más de George Ang (20)

Wrapper induction construct wrappers automatically to extract information f...
Wrapper induction   construct wrappers automatically to extract information f...Wrapper induction   construct wrappers automatically to extract information f...
Wrapper induction construct wrappers automatically to extract information f...
 
Opinion mining and summarization
Opinion mining and summarizationOpinion mining and summarization
Opinion mining and summarization
 
Huffman coding
Huffman codingHuffman coding
Huffman coding
 
Do not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar textDo not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar text
 
大规模数据处理的那些事儿
大规模数据处理的那些事儿大规模数据处理的那些事儿
大规模数据处理的那些事儿
 
腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势
 
腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程
 
腾讯大讲堂04 im qq
腾讯大讲堂04 im qq腾讯大讲堂04 im qq
腾讯大讲堂04 im qq
 
腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化
 
腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
腾讯大讲堂01 移动qq产品发展历程
腾讯大讲堂01 移动qq产品发展历程腾讯大讲堂01 移动qq产品发展历程
腾讯大讲堂01 移动qq产品发展历程
 
腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagement腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagement
 
腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享
 
腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
 
腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享
 

腾讯大讲堂24 qq show2.0重构历程

  • 2. QQQQ 秀秀 1.01.0 的技术架构的技术架构 存储层 DB/Files 接口层 数据存取、操作 API/ 接口 Server/File Server/ 流程 Server… 应用层 ITEM 显示 / 商城 / 用户换装 / 用户个人形象管理 /QQ Client 表 现 /Chat Room 表现 /Web 表现 / 内部管理系统… 系统层 数据缓存 / 图片合成 Server/ 数据 维护 Daemon…
  • 3. 系统 / 存储 层 Web 应用 QQ Client 应用 Chat Room 应用 数据存取、操作 API UDP File ServerHTTP File Server User DB Item Info DB Item/Image Files DB Cache Server File Cache Server图片处理 Server 接口层 应用层 数据维护 Daemon 各层细化的结构图及数据流各层细化的结构图及数据流
  • 4. 只能提供只能提供 GIFGIF 图片服务图片服务 ,, 限制了应用的进一步发展限制了应用的进一步发展 QQQQ 秀服务抛开商城应用秀服务抛开商城应用 ,, 简单而言其实就是给应用提供一套图片下载简单而言其实就是给应用提供一套图片下载 展示的系统展示的系统 ,, 在互联网应用初期在互联网应用初期 ,, 由于带宽以及用户机器性能原因由于带宽以及用户机器性能原因 ,, 我我 们只能提供们只能提供 GIFGIF 图片展示用户个性化的形象图片展示用户个性化的形象 ,, 而且也能吸引用户来玩而且也能吸引用户来玩 ,, 但是随着但是随着 QQQQ 秀业务的发展秀业务的发展 ,, 用户也不再满足于简单的图形化形象的展用户也不再满足于简单的图形化形象的展 示示 .. 商城应用性能存在一定的瓶颈商城应用性能存在一定的瓶颈 作为公司最早最成熟产品作为公司最早最成熟产品 ,, 原有的商城设计承受了大于设计容量很多倍原有的商城设计承受了大于设计容量很多倍 的考验的考验 ,, 存在重新规划的需求以满足后续业务的新生存在重新规划的需求以满足后续业务的新生 .. 服务可运营性不足服务可运营性不足 我们提供的服务在运行期缺少跟踪的手段我们提供的服务在运行期缺少跟踪的手段 ,, 来了投诉也没有个清晰的渠来了投诉也没有个清晰的渠 道来获取相应的信息道来获取相应的信息 ,, 在容灾建设方面也缺少快速恢复的手段在容灾建设方面也缺少快速恢复的手段 .. 整个服整个服 务缺少必要的实时化监控务缺少必要的实时化监控 . IDC. IDC 分布等分布等 .. 运营的一些数据缺少数据支撑运营的一些数据缺少数据支撑 不能满足业务精细化运行的需要不能满足业务精细化运行的需要 前台用户交互部分和用户数据逻辑部分耦合度过高前台用户交互部分和用户数据逻辑部分耦合度过高 QQQQ 秀秀 1.01.0 技术架构的一些技术架构的一些 "" 困困 惑惑 ""
  • 5. QQQQ 秀秀 2.02.0 要解决的要解决的 "" 困惑困惑 "" 在提供一套图形形象的基础上在提供一套图形形象的基础上 ,, 提供基于提供基于 flashflash 的的 形象展示形象展示 ,, 并且把并且把 flashflash 形象作为形象作为 QQQQ 秀形象的主秀形象的主 要应用要应用 ,, 为业务后续的发展提供更丰富的展示平为业务后续的发展提供更丰富的展示平 台台 在用户数快速增长的环境下解决商城性能问题在用户数快速增长的环境下解决商城性能问题 提高服务的可运营性提高服务的可运营性 ,, 提高服务的质量提高服务的质量 支撑业务发展所必需了解的运营数据支撑业务发展所必需了解的运营数据 商城前后台逻辑实现用户交互以及数据逻辑的分商城前后台逻辑实现用户交互以及数据逻辑的分 离离 ,, 方便后续业务的扩展以及简化开发方便后续业务的扩展以及简化开发
  • 6. QQQQ 秀秀 2.02.0 商城子系统商城子系统 Web Server/CGI TTC-cache 商城 DB TTC-cache 社区 DB TTC-cache 活动 DB 批价发货 Server 商城管理端 /Daemons {UIND/USD 等非逻辑层并且有状 态服务 } 应用容灾机制实现 IP 的 可替换 , 但不能热备 通 过 Agent 动 态 获 取 DBC 服务接 口信息 {GD Server/ OIDB/ 消息中转 Server// 搜索引擎 等无状态逻辑层服务 } 属于逻辑层服务 , 应用 容灾备份机制实现 N+1 互备 {DataProxy} 属于逻辑层服务 , 应用容灾 备份机制实现 N+1 互备 各类底层服务 /TCP 服务 /UDP 服务 / 文件储存 服务 /DB 储存服务 通 过 Agent 获取相应服 务接口信息 通 过 Agent 动 态 获 取 相 应 服 务 接 口 信息 Web Server/CGI TTC-cache 商城 DB TTC-cache 社区 DB TTC-cache 活动 DB 批价发货 Server 商城管理端 /Daemons {UIND/USD 状态服 务 } 应用容灾机制实 现 IP 的可替换 , 但不 能热备 通 过 Agent 动 态 获 取 DBC 服务接 口信息 {GD Server/ OIDB 无状态逻辑 层服务 } 属于逻辑层服务 , 应用容灾备份机制实现 N+1 互备 {DataProxy} 属于逻辑层服务 , 应用容灾 备份机制实现 N+1 互备 底层服务 /TCP 服务 /UDP 服 务 / 文件储存服务 /DB 储存服 务 通 过 Agent 获取相应服 务接口信息 通 过 Agent 动 态 获 取 相 应 服 务 接 口 信息
  • 7. QQQQ 秀秀 2.02.0 商城子系统商城子系统 面向面向 QQQQ 秀用户访问后台秀用户访问后台 DBDB 全部通过全部通过 DBC/TTCDBC/TTC 层代理,层代理, DBCDBC 屏屏 蔽蔽 TTCTTC 的分布,的分布, TTCTTC 屏蔽屏蔽 DBDB 的分布,既有的分布,既有 cachecache 能力,又能有效能力,又能有效 的屏蔽后台的屏蔽后台 DBDB 物理分布信息,给后台数据的扩容以及迁移带来很大物理分布信息,给后台数据的扩容以及迁移带来很大 的便利。另外的便利。另外 DBCDBC 按业务按业务 DBDB 细分成细分成 1010 种类型(当前实际部署种类型(当前实际部署 55 种种 类型),部署在一台服务器上为一组,一共类型),部署在一台服务器上为一组,一共 33 组提供中转服务。组提供中转服务。 面向管理端面向管理端 /daemon/daemon ,考虑到,考虑到 TTCTTC 对部分对部分 SQLSQL 功能的支持不能满足功能的支持不能满足 业务的需求,这部分时直连业务的需求,这部分时直连 DBDB 解决。后续持续对管理端解决。后续持续对管理端 /daemon/daemon 部部 分功能直连分功能直连 DBDB 部分做进一步改造,达到部分做进一步改造,达到 IPIP 的全部配置化,进一步的全部配置化,进一步 完善完善 TTCTTC 等等。等等。 对公司对公司 // 部门的公共接口服务采用无状态逻辑部门的公共接口服务采用无状态逻辑 serverserver 进行中转进行中转 // 避免避免 用户接入层的频繁变更,采用用户接入层的频繁变更,采用 N+1N+1 的方式进行热备的方式进行热备 对文件存储的服务做到接口服务对文件存储的服务做到接口服务 IP/PORTIP/PORT 的可配置,可以方便的迁的可配置,可以方便的迁 移这类服务部署到其他位置(类似移这类服务部署到其他位置(类似 TTCTTC 对对 DBDB 的物理分布配置功的物理分布配置功 能)能)
  • 8. 前台模块前台模块 采用采用 FlashFlash 引擎,引擎, FlashFlash 负责交互,封装了独立的换装负责交互,封装了独立的换装 jsjs 库负责和库负责和 FlashFlash 通讯通讯 采用采用 AJAXAJAX 技术,用技术,用 XMLXML 作为前后台的通讯媒介,方便调试和自动作为前后台的通讯媒介,方便调试和自动 化测试化测试 前台采用了统一的出错处理机制以及页面填充函数,简化了页面的前台采用了统一的出错处理机制以及页面填充函数,简化了页面的 开发开发 前台相关交互部分尽量都模块化,形成互补干扰的子模块, 比如换前台相关交互部分尽量都模块化,形成互补干扰的子模块, 比如换 装系统、菜单模块、专区模块、一些业务线经常变更的特性做成可装系统、菜单模块、专区模块、一些业务线经常变更的特性做成可 以管理的模块方便更新以管理的模块方便更新 前台模块的基本思路和前台模块的基本思路和 QzoneQzone 的前台优化思路一致的前台优化思路一致 ,, 降低流量降低流量 ,, 提提 高用户体验速度以及提高交互的感受高用户体验速度以及提高交互的感受
  • 9. 逻辑模块逻辑模块 CGI 逻辑 通用逻辑层 / 公共接口 存储层 DB TTC C4A 采用三层架构,使得存储采用三层架构,使得存储 -- 通用逻辑通用逻辑 -- 业务逻辑解藕。业务逻辑解藕。
  • 10. 数据储存模块数据储存模块 QQShow2.0QQShow2.0 商城现在全部采用商城现在全部采用 DBC+TTCDBC+TTC 的方的方 式实现数据存储。式实现数据存储。 定义了定义了 55 类类 DBCDBC 分别中转不同级别的分别中转不同级别的 TTCTTC 请请 求,避免非核心功能的频繁更改影响核心业务求,避免非核心功能的频繁更改影响核心业务 每类每类 DBCDBC 分别部署到分别部署到 55 台不同机器,实现了负台不同机器,实现了负 载均衡和容灾载均衡和容灾
  • 11. 数据储存模块数据储存模块 对于核心数据,例如用户信息和用户物品对于核心数据,例如用户信息和用户物品 分布了在分布了在 100100 个库个库 1000010000 表,这样可以表,这样可以 减少减少 DBDB 写操作时的锁表情况,提高写操作时的锁表情况,提高 DBDB 写效率写效率 尽量将核心数据的尽量将核心数据的 TTCTTC 部署在其部署在其 DBDB 的同的同 台服务器上,可以大大提高台服务器上,可以大大提高 TTCTTC 的读写的读写 速度。速度。
  • 13. 容灾建设容灾建设 Configserver/AgentConfigserver/Agent 服务服务 ,, 保证服务故障的时候保证服务故障的时候 能快速切换到正常提供服务的备用服务上(主要能快速切换到正常提供服务的备用服务上(主要 应用在逻辑层无状态服务上)应用在逻辑层无状态服务上) 数据层容灾主要靠数据层容灾主要靠 BUBU 公共组件提供支持公共组件提供支持 业务侧暂时保证对核心数据层服务提供业务侧暂时保证对核心数据层服务提供 N+MN+M 热热 备备 ,, 结合结合 Configserver/AgentConfigserver/Agent 服务能快速恢复服服务能快速恢复服 务务 对非核心数据层服务提供冷备服务对非核心数据层服务提供冷备服务 ,, 结合冷备数结合冷备数 据以及据以及 LOGLOG 恢复数据恢复数据 ,, 再借助再借助 AgentAgent 能快速恢能快速恢 复服务复服务
  • 14. 日常运营监控模块日常运营监控模块 利用返回码系统实现了关键调用的情况以及调用时间的利用返回码系统实现了关键调用的情况以及调用时间的 上报,而开发人员只需维护关键调用映射表。(模块间上报,而开发人员只需维护关键调用映射表。(模块间 调用监控)调用监控) 返回码系统记录关键调用路径,并将错误和调用时间超返回码系统记录关键调用路径,并将错误和调用时间超 过过 1s1s 的调用集中以的调用集中以 UDPUDP 的方式发送到的方式发送到 logserverlogserver 集中集中 管理管理 CGICGI 服务的自动化测试监控服务的自动化测试监控 页面级测速监控页面级测速监控 运营数据统计接入运营数据统计接入
  • 15. QQQQ 秀秀 2.02.0 后台子系统后台子系统 Web 商城 应用层 QQ Client 应用 逻辑层 系 统 / 存 储 层 http_ifsd Item 后台 管理网站 tcp Fileserver 商城 ITEM Nfs_server qqshow_nfsd 用户 形象 xml 文件 Ts_Server 时间 戳文 件 FasSvr Image_Exchange_Server UDP UDP UDP GD Server qqshow_gd TCP Tcp_Item TCP nfs 切 CDN 切 CDN
  • 16. QQQQ 秀秀 2.02.0 后台后台 itemitem 系统系统 商城子系统中的展示商城子系统中的展示 8484 图图 ,, 换装换装 flashflash 文文 件的拉取都是通过件的拉取都是通过 qqshow2-item.qq.comqqshow2-item.qq.com 来拉取来拉取 ClientClient 应用中拉取应用中拉取 flashflash 文件来显示形象也文件来显示形象也 是通过是通过 flash2-item.qq.comflash2-item.qq.com 来拉取来拉取 这两个域名外包这两个域名外包 CDNCDN 实现分布实现分布 ,, 内容部分内容部分 是通过业务管理段实现上传和管理是通过业务管理段实现上传和管理
  • 17. QQQQ 秀秀 2.02.0 后台后台 GDGD 系统系统 GDGD 服务是商城服务和后台服务的一个接口服务是商城服务和后台服务的一个接口 GDGD 生成了用户形象的生成了用户形象的 XMLXML 配置信息,供配置信息,供 clientclient 来拉取,并由来拉取,并由 clientclient 来负责解析,在来负责解析,在 通过通过 clientclient 主影片负责显示主影片负责显示 qqshowqqshow 形象形象 GDGD 负责负责 NFSDNFSD 以及时间戳服务上相应数以及时间戳服务上相应数 据的更新工作据的更新工作 ..
  • 18. QQQQ 秀秀 2.02.0 后台快照系统后台快照系统 负责生成负责生成 flashflash 形象对应的形象对应的 GIFGIF 形象形象 通过通过 linuxlinux 系统下的系统下的 firefoxfirefox 进程挂载进程挂载 flashflash 进程来进程来 生成快照生成快照 GDGD 负责通知快照服务负责通知快照服务 快照服务生成快照之后需要通知原有的快照服务生成快照之后需要通知原有的 GIFGIF 形象形象 系统系统 ,, 更新相应的接口更新相应的接口 ,, 保证保证 GIFGIF 形象能正常显形象能正常显 示出来示出来