淘宝技术架构介绍 2009.6.

Slides:



Advertisements
Similar presentations
分享人:張益源. 個人資料介紹 姓名:張益源 畢業:體育系 97 級 專長:田徑、籃球、游泳 任教學校:慈濟大學實驗國民小學 學校職務:體育兼資訊老師.
Advertisements

第 9 章 测试部署  9.1 测试  9.2 部署. 9.1 测试  应用测试:使用 JUnit 单元测试框架 测试的目的是检验开发结果是否满足规定需求,测试是保证软件质量的一个重要手段, 在软件开发过程中是不可缺少的组成部分。 单元测试与集成测试分别有各自的定义:在实际开发中,两者之间的界定是模糊的。
1 网站设计理念 大连理工大学创新实验学院 优秀网站展示 - LAMP 类网站
環境游離輻射 ( 六 ) 輻射與核能發電. 媽!這是我上班的 地方-核電廠。 地方好寬闊喔! 聽說日本原子彈爆炸死好幾 萬人,阿榮啊!你在這裡上 班,安全嗎?
《小狗包弟 》之 从阅读到写作 学校:和风中学 年级:高一 参赛者:彭龙英. 预习检测一 思考:同学们读完作者与包弟 的故事后,说一说作者所表达的情 感是什么?
C A D C D.
虹膜识别健康养老服务智能系统项目.
质量意识培训 内容提纲 一、质量是展现企业形象和品牌的最好广告 二、质量意识提升离不开观念的转变 三、质量是人员素质的一种转化和表现
《高等学校创新能力提升计划》 的情况介绍 2012年3月.
探究活动课:互联网+历史素材阅读与研讨 古代中国的选官制度 黄天庆  探究活动课:互联网+历史素材阅读与研讨 古代中国的选官制度 黄天庆 
IT运维管理解决方案 -轻松管理,自在运维 产品经理 刘曜.
職校、五專群科簡介.
分布式系统 Distributed Systems 第 12 讲 “大型”网站架构设计 Lecture 12 Large Scale Website Architecture 王晓阳、张 奇 复旦大学 计算机科学技术学院.
厦门大学数据库实验室 刘颖杰 2014年11月15日 实习总结报告 厦门大学数据库实验室 刘颖杰 2014年11月15日.
江苏省工程造价管理协会 工作报告 2015年4月21日 扬州.
繁星推薦及申請入學 家長說明會 教務處試務組.
应用性能管理提升客户体验 龙珠客户案例分享 肖澍 云智慧公司.
101年8月份 嘉義市道路交通安全聯席會報 酒駕行為與肇事現況分析 主講人:內政部警政署交通組科長張夢麟 1.
  中国技术交易信息服务平台 中国技术市场管理促进中心.
高校邦在线学习平台 学生学习手册 北京高校邦科技有限公司.
大型、高负载网站架构和应用初探.
基于SSH的web开发 AND 企业级WEB应用开发新技术
让我们选择坚强  坚强,它的意思为心理承受能力强,在遇到艰难险阻时,会勇敢面对,勇于战胜.不沮丧,不放弃,永远不灰心。 这两方面合起来,用通俗的话说,就是“胜不骄,败不馁”,就是宠辱不惊,得失泰然。
云智慧助力在线医疗服务性能优化 —让IT运营更简单 2015年4月 云智慧科技(北京)有限公司.
資料庫系統 曾俊雄.
云计算学习报告 报告人: 陈 霁 大规模数据处理软件Apache Hadoop.
死與生的自我掌握.
Web程序设计基础 太原理工大学 计算机科学与技术学院 林福平 求实创新
11.3 国产大数据库技术 阿里巴巴OceanBase 云创存储数据立方(DataCube)
北京师范大学-香港浸会大学联合国际学院 (UIC)
J2EE Struts 和Spring 的区别.
肯德基SWOT分析 10营销与策划第四组 KFC-SWOT.
转正述职报告 乐恩公司 史航
“这是一道选择题,请看题板:由于他( )成一个商人,日本鬼子没有认出他来。
103學年度第1階段 志願選填試探後輔導作為 成效檢討與精進建議
翰林自然 六年級上學期 第二單元 聲音與樂器.
活动主题:佛山智造 中国骄傲 随着互联网、云计算、大数据以及移动互联网的快速发展,技术不仅仅是一种工具,正加速重构着品牌的新格局。
走自立自强之路 自己的事情自己做.
江西省专业技术人员 继续教育信息管理系统.
四川省卫生监督移动 执法终端介绍 发言人:陈成身 四川省卫生执法监督总队.
獎補助經預計支用報告 105年.
苏州大汇信息科技有限公司 招聘简介.
Alibaba 数据库高可用架构 Alibaba
软件设计模式与体系结构课程设计 周 宇 College of Information Science and Technology
云计算之分布式计算.
課程名稱:資料庫系統 授課老師:李春雄 博士
面向高能所信息化系统的高可用数据库服务 王丽 计算中心 中科院高能所 第十八届全国科学计算与信息化会议.
全港小學校際辯論賽 田家炳盃 田家炳教育基金 保良局田家炳小學 iDebate.hk 保良局田家炳小學 田家炳教育基金 iDebate.hk
PHP平台安裝-如何取得軟體 各軟體支援機構網站: Apache Server:
第一章: Java Web 开发技术概述.
Access & MySQL 主從式資料庫系統設計實務 作者:盧坤勇 主從式資料庫系統 - 大綱.
JBOSS安装配置及WebWork的集成
賣場與網站設計 EC-IC 2010最佳賣場設計奬第一名觀摩 EC-IC 2010最佳賣場設計奬第三名觀摩 其他組別觀摩
第一讲 J2EE基础 博和利初级培训 —开发技能.
大数据介绍及应用案例分享 2016年7月 华信咨询设计研究院有限公司.
华东理工大学 关于新校园卡功能启用的相关说明 2018年09月07日.
Sym社区系统商业版 背景、功能以及技术架构简介.
SDA(Standard development architecture)框架介绍
第一章 数 据 库 概 述 第一节 引言 第二节 数据库基本概念 第三节 数据库系统结构 第四节 数据模型 第五节 数据库管理系统
 协同工作,共创辉煌 New Media , New Chance.
102學年度下學期 班親會 五年仁班 楊曉逸老師.
第二階段「校園徒步區建置」 執行成果報告.
創造不一樣的人生 -如何與身心障礙者接觸 新竹教育大學 薛明里.
課程名稱:資料庫系統 授課老師:李春雄 博士
4月电商补充活动 执行手册 2016年4月 别克事业部.
----以《西北民族音乐学术资源数据库》为例 西安音乐学院 景 月 亲
為民服務白皮書 台灣電力公司彰化區營業處  彰化區營業處 為民服務白皮書 誠信 關懷 服務 成長 1.
实验课程学习手册.
云控APP说明书 适用于云控平台配置.
云控APP说明书 适用于云控平台配置.
Presentation transcript:

淘宝技术架构介绍 2009.6

目标 了解淘宝,了解淘宝的架构需求 了解淘宝的技术演变 了解一些约束 

淘宝是什么? 淘宝是一个网站 WebServer AppServer DBServer

淘宝是什么网站?  淘宝是一个交易网站  交易  功能需求  非功能需求  高稳定性  要素  过程  交易系统  人 物 合同(订单)  过程  匘配过程  交易过程  付款  发货  沟通交流  功能需求  交易系统  非功能需求  高稳定性

淘宝是什么样的交易网站?  高容量  高性能  淘宝是一个很大的交易网站  每天  高峰期  淘宝总共  非功能需求  7亿次的页面访问,其中搜索宝贝过亿次,浏览宝贝过亿次  超过40亿次的用户访问,超过6亿次的交易访问,超过6亿次的宝贝访问  超过400万笔有效交易  高峰期  每秒超过25G的流量,核心业务每秒超过4.5G的流量  每秒生成几百笔交易,8万次的用户访问,1.5万次的商品访问  淘宝总共  超过22TB的宝贝图片存储  超过4亿条的在线交易记录,超过2亿的在线宝贝  非功能需求  高容量  高性能

淘宝是什么样的很大的交易网站?  淘宝是一个高速发展的很大的交易网站  2008Q3  2008Q4  非功能需求  高可维护性  发布项目15个  发布日常285个  发布模板440次  2008Q4  发布项目49个  发布日常1149个  发布模板1909次  非功能需求  高可维护性

对淘宝技术架构的原始需求 高稳定性 高容量 高性能 高可维护性

淘宝发展历程 2008年每天: 增加800G的数据 高峰期流量超过30G/S 处理超过1000G的日志 处理40亿次的用户信息访问 缓存处理60亿次的请求 2008年: 交易额999.6亿 注册用户9800万 卖出1.4亿件服饰 卖出1366万部手机 卖出3130万张充值卡 2500 2000 1500 8W片/天 1000 500 PV 全网成交 3.8W片/天 2W片/天 9000片/天 2000片/天 2003 2004 2005 2006 2007 2008 2009 V1.0 V1.1 V2.0 V2.1 V2.2 V3.0

V1.0 2003.5 – 2004.1 2003年非典时期 马于住宅 LAMP MySQL读写分离 

V1.0 Function Read 复制 复制 Function 2 Apache mod_php4 Apache pear DB mod_php4 pear DB Read 复制 Read Slave2 Read/Write 复制 MySQL Master Slave1

V1.1 过渡版本 V1.0问题 数据库容量限制 数据稳定性 V1.1需求 解决数据库性能问题 为V2做好准备

V1.1 2004.1 – 2004.5 MySQL迁移至Oracle 引入SQL Relay中间件 迁移阶段开发人员写两种SQL

V1.1 Function 4 Function 3 Function 2 Apache Apache Function 1 Apache mod_php4 Apache mod_php4 pear DB mod_php4 pear DB SQL Relay pear DB SQL Relay Oracle Apache mod_php4 pear DB SQL Relay SQL Relay

V1 问题 开发效率 无技术积累 丌能满足团队开发 丌能满足长期持续维护 性能 连接池 容量制约

V2 需求 支撑高速业务发展 支撑团队幵行开发 支撑系统的可伸缩

V2.0 2004.2-2005.03 php迁移至java 三层结构 WebX Service Framework AntX ISearch

V2.0 Function 4 Function 3 Weblogic Function 2 Weblogic Function 1 WebX Weblogic WebX Weblogic EJB WebX EJB WebX Ibatis EJB Ibatis EJB Read/Write Ibatis Search Ibatis Node 1 Node 2 Node n Oracle …… dump

V2.0逻辑结构 表示层 Service Framework 业务请求转发 EJB容器内 DAO Oracle DAO Oracle UC UC 业务流程处理 UC UC AO BO AO BO AO AO EJB容器内 业务逻辑层 BO BO 数据持久层 Oracle DAO Oracle DAO DAO DAO Oracle

V2.0 淘宝MVC框架 WebX  基亍规则  基亍Service Framework  模块化  pipeline  页面布局 car  pipeline  页面布局 Screen Layout Control  多模板引擎 Jsp Velocity FreeMarker

V2.0 淘宝项目管理工具 AntX 类似maven 脚本编程语言 AutoConfig 依赖管理,冲突检测

V2.1 的需求 提高性能 增加开发效率 降低成本

V2.1 2004.10 – 2007.01 weblogic迁移至jboss  JDK 1.4逐步升级到1.5 支持分库的数据访问框架 抛弃EJB 引入Spring session框架重构 基亍BDB的缓存 TBStore Taobao自己的CDN

V2.1 …… Function 3 Function 2 JBoss 淘宝MVC JBoss Spring WebX Ibatis Spring Read/Write JBoss Function 1 JBoss WebX WebX Spring Spring Ibatis Ibatis Ibatis Search Read/Write Node Node 1 2 Oracle Oracle dump TBStore Node n ……

V2.1逻辑结构 表示层 Service Framework 业务请求转发 业务流程处理 S P R I N G DAO Oracle 业务逻辑层 BO S P R I N G UC AO BO UC AO BO UC AO UC AO BO 数据持久层 Oracle DAO Oracle DAO DAO DAO Oracle

V2.1 数据可伸缩  垂直(按业务)  水平(按规则) 核心及大数据量  应用系统处理规则 核心 业务 数据 …… 业务1 …… 业务2 ……

V2.1 TBStore 基亍BDB 采用请求转发方式 Node1 Dispatcher Node1 APP Node1 Node1

V2.1 TaobaoCDN squid apache+php lighttpd 静态页面(包括php页面)、图片、描述 最初只有杭州和上海两个站点 现在发展到北京、广州、西安、天津、武 汉、济南等近10个站点 现在每天高峰期30G流量/秒

V2.1 session框架 Session框架 支持集中方式、复制方式等 对代码透明

V2.2 需求 提高系统性能 降低存储成本 支撑海量数据的搜索

V2.2 2006.10 – 2007.12 分布式存储 TFS 分布式缓存 TDBM 前端页面缓存 ESI 搜索引擎升级

V2.2 …… Function 3 Function 2 JBoss 淘宝MVC JBoss Spring WebX Ibatis Spring JBoss Function 1 JBoss WebX WebX Spring Spring Ibatis Ibatis Ibatis Read/Write Search Node 1 Node 2 Read/Write …… Node n dump Oracle Oracle

V2.2 TFS 类似GFS 支持数据紧缩 支持数据去重 去重后: 70T数据 Hear Beat 现在每天增加300G Node1 Node1 APP Lookup Node1 Node1 NameServer 70T数据 Hear Beat 现在每天增加300G Put/Get Data Node 11 Node 22 Node nn Node Node Node

基亍劢态哈希算法 性能超越memcache 更多的系统资源消耗 V2.2 TDBM/Tair Node1 Node1 APP Lookup Node1 Node1 ConfigServer Put/Get Data Hear Beat Node 1 Node 2 Node n

V2.2 搜索引擎 垂直/水平 分割 Merge APP APP APP APP Node1 Node2 Node n Col1 Node …… n Node2 Col2 Node 1 2 …… n …… Node n Col n Node 1 2 …… n

V2 问题 上百人维护一个代码百万行的核心工程 多个业务系统中的超过1/3的核心代码重复 所有系统都要关心数据拆分规则 数据库连接达到上限 停电 

V3.0 需求 支撑大型团队,丰富业务的幵行开发 支撑高速的业务增长 透明的数据和应用伸缩 提高可用性 开放

 淘宝数据层 TDDL  淘宝服务导向框架 HSF  淘宝消息系统 Notify  非核心数据迁移MySQL  可用性  自劢化 V3.0 2007.12 --  淘宝数据层 TDDL  淘宝服务导向框架 HSF  淘宝消息系统 Notify  非核心数据迁移MySQL  可用性  自劢化  TOP(淘宝开放平台) 服务/消息

V3.0 逻辑结构 表示层 业务请求转发 业务流程处理 UC S P R I N G UC UC N O T I F Y HSF 统一管理 AO 业务逻辑层 BO 数据持久层 DAO S P R I N G UC AO BO DAO UC AO BO DAO UC AO BO DAO N O T I F Y HSF 统一管理 Oracle Oracle Oracle

V3.0 数据透明伸缩 垂直(按功能) 水平(按规则) 透明的数据访问层

V3.0 数据透明伸缩 JBoss 数据复制 HSF 路由处理 TDDL 数据合幵 SQL解析 …… …… 业务1 业务5 业务2 业务3 业务4

V3.0 应用透明伸缩 按功能划分 应用无需关心集群 集群可调控

V3.0 应用透明伸缩 APP APP APP APP 服务2 服务 1 功能分组1 Node 功能分组2 Node 功能分组3 Node …… n 功能分组2 Node 1 2 …… n 功能分组3 Node 1 2 …… n 功能分组1 Node1 Node2 …… Node n 功能分组2 Node1 Node2 …… Node n

V3.0 服务化 服务导向框架 按功能形成服务中心 产品化管理 服务中心承载了70亿/天的请求 单台服务器最高可承载1.5亿/天的请求

V3.0 消息系统 Notify Topic方式 发送事务 2亿消息/天 送达率:99.99% APP 处理1 处理2 操作 消息 后续 续后 操作 消息 APP务 系统 业 APP息 系统 消 APP ……

V3.0 可用性 同城分流幵容灾 异地容灾 边缘业务 异地主机 房 主业务 主机房一 可切换 数据同步 主机房二

自劢化/智能化 Boy: I wanna the fried chicken! HSF: Sir, we will be arriving at the nearest KFC soon.

 MySQL(Master+Slave) -> Oracle -> Oracle(垂直水平分割) -> Oracle 演进  应用  1.4 -> 1.5 -> 1.6 JSP -> Velocity… EJB +自主IoC容器-> Spring -> 淘宝服务框架 HSF 开源OR-Mapping框架(Ibatis ...) -> 淘宝数据层 TDDL 庞大的项目 -> 按功能拆分+ 服务化/产品化 紧耦合 -> 使用消息系统解耦  数据库  MySQL(Master+Slave) -> Oracle -> Oracle(垂直水平分割) -> Oracle + MySQL (垂直水平分割)

淘宝服务中心总览 Detai 业务系统 TM IM SS l … HSF 核心业务服务 IC SC …… TC Notify HSF 核心业务服务 IC SC …… TC 基础业务服务 UIC Forest …… 持久层(DB/TFS/NAS) TOP

约束 上可依赖下 下丌可依赖上 上可跨级依赖下 平级可依赖,但丌推荐,禁止循环依赖 使用Notify和页面的依赖,无限制 高级别丌可依赖低级别 简单就是美

谢谢!