淘宝技术专场

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Aboutme姓名:曾宪杰花名:华黎淘宝-产品技术-Java中间件团队团队博客Sina微博@曾宪杰_华黎Twitter@vanadies102内容提要淘宝网架构的变迁基于Java技术的基础产品业务中特色系统介绍3淘宝网的架构变迁4技术里程总览V1.0(2003.5–2004.5)小而快的简单架构V2.0(2004.2–2008.3)应付业务增长的层次化结构开始有自己开发的软件技术V3(2007.10-2009.11)产品化的思维做深,做精服务导向的框架应付多样化的业务V4(2009.8-)系统化智能化专业化V1.0:小而快2003.5–2004.5简介2003年非典时期使用LAMP架构(Linux,Apache,MySql,Php)业界流行的免费开源组合使用改造过的一个商业软件phpAuction,以拍卖为主简单的库表结构用户,交易,列表,其他简单的结构,但符合当时需求7V2.0:多层次结构,开始做自己的软件2004.2–2008.3需求业务发展快速需要“较高”性能的架构(百万至千万用户级的架构)团队并行开发开始有小团队(几十人)做开发,开发效率必需考虑系统的可伸缩容易的扩容,增加机器9简介应用中间件软件由weblogic迁移至jboss支持分库的数据访问框架自主的淘宝分布式文件系统,TFS自主的搜索引擎,iSearch自主的缓存系统,TDBMTaobao自己的CDNCDN(ContentDeliveryNetwork),增进性能因应业务的增多,用户的激增,架构也日趋多层化业务流程处理数据持久层业务逻辑层BOBOBOBOBOBOBOBOBOAOAOAOAOAOAOUCUCUCUCUCUCDAODAODAODAODAO表示层-WEBX业务请求转发数据数据数据数据采用SPRING作为统一的框架10问题I上百人维护一个代码百万行的核心工程共享一个代码模块,Denali(虽然部署是分离的)多个业务系统中的超过1/3的核心代码重复编写代码复杂难维护V2单一代码模块的设计(Denali)11问题II所有系统都要关心数据拆分规则不必要的设计数据库连接达到上限(每个Oracle数据库大约提供5000个链接)连接池是有限的资源Oracle数据库太多的应用机器有限的链接池需要数据库连接12V3.0:产品化思维及服务导向框架2007.10-2009.11需求支撑大型团队,丰富业务的并行开发软件模组化,中心化(用户,交易,商品,店铺,评价等),走向鬆耦合基础软件产品化独立团队开发,做深,做大从盖独立别墅到建造高楼大厦!支撑高速的业务增长快速扩容(几十亿PV,几千亿GMV,几万台机器)提高可用性及管理性走向AlwaysAvailable对外开放14结构数据和应用透明伸缩非核心数据从Oracle迁移MySQL消息系统服务框架和服务化淘宝开放平台(TOP)运营支撑平台(TBoss)用户中心交易中心商品中心收费中心鬆耦合,服务导向的架构15V4.0:系统化、智能化、专业化2009.8-现状系统化把知识经验通过系统、平台进行沉淀,而不是总是人肉重复智能化从提供开关人工处理到系统自主决策专业化业务平台、技术平台的深耕稳定性、性能的深入发展17技术里程回顾V1.0(2003.5–2004.5)小而快的简单架构V2.0(2004.2–2008.3)应付业务增长的层次化结构开始有自己开发的软件技术V3(2007.10-2009.11)产品化的思维做深,做精服务导向的框架应付多样化的业务V4(2009.8-)系统化智能化专业化基于Java技术的基础产品19计算机硬件结构图外存内存运算器控制器输入设备输出设备数据、程序CPU主机数据、程序数据、程序冯.诺依曼型计算机计算机组成计算机系统的本质数据处理数据存储数据访问大型互联网访问量很大?数据量很大?访问量和数据量需要都很大核心是通过分布式系统解决前面提到的三个问题网站结构示意图LoadBalancerWebAppWebAppServiceServiceCache分布式存储搜索消息中间件服务框架CDN数据层DB数据层并行计算平台DBDB(S)DB(S)监控运维平台23Web框架Webx在阿里内部广泛使用的MVC框架Turbine风格有很好的层次化、模块化,并且高度可扩展基于Webx的无线应用自适应框架Velocity的编译优化中间件LoadBalancerWebAppWebAppServiceServiceCache分布式存储搜索消息中间件服务框架CDN数据层DB数据层并行计算平台DBDB(S)DB(S)监控运维平台25服务框架服务发布服务查询服务调用服务治理服务框架07年淘宝开始走向服务化08年初有多种RPC的方式基于SOCKET,有多种不同实现使用上不透明,成本高服务框架简单透明(提供服务和使用服务)支持软负载灵活可控,方便扩展稳定性支持服务框架调用者服务提供者调用者服务提供者服务注册查找中心29中间件LoadBalancerWebAppWebAppServiceServiceCache分布式存储搜索消息中间件服务框架CDN数据层DB数据层并行计算平台DBDB(S)DB(S)监控运维平台30消息中间件•Message-orientedmiddleware(MOM)issoftwareinfrastructurefocusedonsendingandreceivingmessagesbetweendistributedsystems.---fromwikipedia.org•MOM的优点–松耦合–异步处理ApplicationAApplicationBApplicationProgrammingInterfaceMessageOrientedMiddleware31消息中间件doactionCallACallBSystemASystemB传统方式使用消息中间件方式doactionSendmessageSystemASystemBMOM32消息中间件业务系统完成一件事情后,需要其他系统进行处理的,通过定时程序来驱动业务系统Dosomething业务DB定时程序获取任务Doaction33消息中间件Notify是一个高性能、可靠、可扩展、可与发送端业务逻辑相结合、支持订阅者集群的消息中间件。互联网时代的消息中间件支持最终一致消息可靠支持订阅者集群34中间件LoadBalancerWebAppWebAppServiceServiceCache分布式存储搜索消息中间件服务框架CDN数据层DB数据层并行计算平台DBDB(S)DB(S)监控运维平台35数据层36数据层UserUser1User2User1-MUser2-MUser2-SUser1-S分库分表读写分离数据库架构的演进37数据层User1-MUser2-MUser2-SUser1-STAtomDataSourceTGroupDataSourceTDataSource数据源的三层重构业务可以灵活选择38数据层SQL解析,路由规则,数据合并Client-DB和Client-Server-DB模式非对称数据复制三层的数据源结构39LoadBalancerWebAppWebAppServiceServiceCache分布式存储搜索消息中间件服务框架CDN数据层DB数据层并行计算平台DBDB(S)DB(S)监控运维平台40HBase图来源于:基于0.90.2进行扩展运维页面;fixmaster恢复时间过长的bug;fixbackupmaster不自动接管的bug;避免Regionserver接到过大数据请求OOM;完善TableBalance;HBaseetao:100台机器,目前已使用60T;数据魔方:10台机器,目前已使用500G+;交易日志:12台机器,目前已使用360G+;UDC:8台机器,目前已使用600G+;。。。。。。43LoadBalancerWebAppWebAppServiceServiceCache分布式存储搜索消息中间件服务框架CDN数据层DB数据层并行计算平台DBDB(S)DB(S)监控运维平台44终搜架构45终搜特性列表中心化的配置管理(非本地配置)产品化/框架化,抽象物理模型(产品化,平台化)多种Dump机制的支持,数据预处理机制Taobao化,HSF、ConfigServer等淘宝自有技术的使用Solr外围扩展(不修改Solr代码,上层扩展)支持实时搜索,实时时间1s内产品化/框架化,抽象物理模型(产品化,平台化)46Hbase应用在历史库的搜索上47LoadBalancerWebAppWebAppServiceServiceCache分布式存储搜索消息中间件服务框架CDN数据层DB数据层并行计算平台DBDB(S)DB(S)监控运维平台48并行计算平台基于Hadoop的云梯1系统JobTracker异步化NameNode优化存储优化小作业优化49并行计算平台总容量25.35PB,利用率55.2%总共1400+台机器Master:8CPU(HT),96GB内存,SASRaidSlave节点异构8CPU/8CPU(HT)16G/24G内存1Tx12/2Tx6/1Tx6SATAJBOD12/20slots约40000道作业/天,扫描数据:约1.7PB/天用户数474人,用户组38个50并行计算平台简化版的实现方便部署、维护和管理MasterWorkerWorkerWorkerLoadBalancerWebAppWebAppServiceServiceCache分布式存储搜索消息中间件服务框架CDN数据层DB数据层并行计算平台DBDB(S)DB(S)监控运维平台52CSP业务架构52逻辑单元逻辑单元逻辑单元逻辑单元逻辑单元CSP收集分析器db应用系统收集分析器db收集分析器db收集分析器db收集分析器db控制服务中心应用系统应用系统应用系统应用系统应用系统应用系统应用系统应用系统应用系统应用系统应用系统54CSP的一些数据平台化15台机器,15个库APP采用了逻辑单元的概念(隔离)采用15个逻辑单元对超过200多个系统进行监控每日数据超过5000万24个系统进行容量规划10个系统进行依赖关系6个系统完成统一的保护开关部署5455哈勃系统架构配置中心AgentAgentAgentAgentAgentAgentAgent采集层分析服务器(slave)分析服务器(slave)分析服务器(slave)分析层分析服务器(Master)……应用层Mysql配置库cassandra数据库集群对外接口数据展现报警系统整个系统分为“采集”,“分析报警”和“应用(展现)”三个层次,实现了“采集”,“分析”,“报警”,“存储”和“展示”五大功能。56系统特点超轻量级HubAgent:HubAgent是一个基于插件模式轻量级HTTP服务,可以通过增加插件的方式进行扩展,目前已提供“增量日志获取”,“外部程序(脚本)调用”,“进程&线程探测”,“端口探测”等多种服务。系统使用Python开发,不依赖第三方系统,可以安装在任何linux服务器上。分布式的分析系统:.分析系统使用MapReduce的编程模型,对大量的监控数据进行并行处理。系统将采用松耦合的Master-Slave模式,Master处于被动状态,只负责任务的生成和合并,不需要关心任务分派。系统设计更加简单、灵活,通过增加Slave即可得到水平扩展能力。Cassandra数据存储:系统使用Cassandra来实现大量监控数据的分布式存储,Cassandra具有模

1 / 90
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功