淘宝技术架构分享.pdf

上传人:b****2 文档编号:3176729 上传时间:2022-11-19 格式:PDF 页数:7 大小:1.27MB
下载 相关 举报
淘宝技术架构分享.pdf_第1页
第1页 / 共7页
淘宝技术架构分享.pdf_第2页
第2页 / 共7页
淘宝技术架构分享.pdf_第3页
第3页 / 共7页
淘宝技术架构分享.pdf_第4页
第4页 / 共7页
淘宝技术架构分享.pdf_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

淘宝技术架构分享.pdf

《淘宝技术架构分享.pdf》由会员分享,可在线阅读,更多相关《淘宝技术架构分享.pdf(7页珍藏版)》请在冰豆网上搜索。

淘宝技术架构分享.pdf

淘宝技术架构分享中文网站技术部-B2C商城-郎中锋【花名:

八神】Email:

zhongfeng.langzfalibaba-一,淘宝技术架构1.淘宝整体网络架构:

我介绍下图中提到的各个系统缩写是神马意思:

1.UIC:

用户中心(UserInterfaceCenter),提供所有用户信息相关的读写服务,如基本信息,扩展信息,社区信息,买卖家信用等级等等。

淘宝现在有两类卖家B和C,这是通过在用户身上打不同的标签实现的,我们这次的无名良品卖家也是通过在用户身上打特殊的标签来区别于淘宝已有的B和C类卖家。

淘宝的TOP平台已经开放了大部分的UIC接口。

2.IC:

商品中心(ItemCenter),提供所有商品信息的读写服务,比如新发商品,修改商品,删除商品,前后台读取商品相关信息等等,IC是淘宝比较核心的服务模块,有专门的产品线负责这块内容,IC相关接口在TOP中占的比重也比较大。

3.SC:

店铺中心(ShopCenter),类似中文站的旺铺,不过淘宝的SC不提供页面级应用,提供的都是些远程的服务化的接口,提供店铺相关信息的读写操作。

如:

开通店铺,店铺首页,及detail页面店铺相关信息获取,如店内类目,主营,店铺名称,店铺级别:

如普通,旺铺,拓展版,旗舰版等等。

装修相关的业务是SC中占比重较大的一块,现在慢慢的独立为一个新的服务化中心DC(designcenter),很多的前台应用已经通过直接使用DC提供的服务化接口直接去装修相关的信息。

ABTN网络店铺商城互动社区无线DNS淘宝接入层交换机LB设备GTM分流商品淘宝前端应用HSF接口UICICSCTCPCForest推送给“淘宝前端应用”淘宝共享服务打点/埋点日志DW部门数据处理Search接口LB配置TDDL/读写分离Ibatis接口MysqlOracle数据库系统SPU搜索大C搜索实时搜索搜索搜索引擎系统Dump中心Build索引分发索引文件TDBMTairTFS快照数据共享系统Search接口DNSCDN系统LB设备静态页面图片站点缓存淘宝用户群二级缓存图片淘宝客户群淘宝直通车广告DBDump数据Build索引数据广告检索系统JS调用广告展示广告点击消费计费系统淘宝广告系统4.TC:

交易中心(TradeCenter),提供从创建交易到确认收货的正向交易流程服务,也提供从申请退款到退款完成的反向交易流程服务.5.PC:

促销中心(PromotionCenter),提供促销产品的订购,续费,查询,使用相关的服务化接口,如:

订购和使用旺铺,满就送,限时秒杀,相册,店铺统计工具等等。

6.Forest:

淘宝类目体系:

提供淘宝前后台类目的读写操作,以及前后台类目的关联操作。

7.Tair:

淘宝的分布式缓存方案,和中文站的Memcached很像。

其实也是对memcached的二次封装加入了淘宝的一些个性化需求。

8.TFS:

淘宝分布式文件存储方案(TBFileSystem),专门用户处理静态资源存储的方案,淘宝所有的静态资源,如图片,HTML页面,文本文件,页面大段的文本内容如:

产品描述,都是通过TFS存储的。

具体设计和优缺点会在下面详细介绍。

9.TDBM:

淘宝DB管理中心(TBDBManager),淘宝数据库管理中心,提供统一的数据读写操作,具体设计在下面详细介绍。

10.RC:

评价中心(Ratecenter),提供评价相关信息的读写服务,如评价详情,DSR评分等信息的写度服务。

11.HSF:

淘宝的远程服务调用框架和平台的Dubbo功能类似,不过部署方式上有较大差异,所有的服务接口都通过对应的注册中心(configcenter)获取。

2.淘宝服务化架构:

用户:

淘宝用户分两类:

买家和卖家,不过很多的卖家也会在淘宝买东西,所以他们既是卖家也是买家,因此最好是按照用户行为分:

卖家行为和买家行为。

买卖家行为都会涉及的系统包括:

店铺,商城,交易,商品,社区等等。

涉及到的功能有较大差异:

客户(卖和买)店铺商城社区商品交易无线无名良品前台系统:

直接和用户打交道,它们依赖于各种核心业务中心提供的服务化接口,淘宝服务化做的比较早,相对B2B来说比较成熟,这种高度服务化的方式有三点好处:

(1)搭建新应用很敏捷,所需要做的就是:

整理业务流组装服务化接口渲染页面

(2)增强应用健壮性,只要保证服务化接口的稳定性容灾性,前台应用调用基本都不会有大的故障(3)服务化接口把类似的业务接口抽象的很纯粹,使得性能观察和优化更有针对性,更专注!

SC店铺中心DC装修中心TC交易中心UIC用户中心RC评价中心PC促销中心Forest类目体系IC商品中心HSF远程调用框架Tair分布式cacheTDBM数据库管理TFS分布式存储Config注册中心基础服务:

提供最基础的共享服务,这些服务中心提供的功能基本与业务无关。

基本上这些服务在B2B都有,只是名字不一样而已,大体的功能也类似,不过实现方式有差异,会在下面具体做介绍。

商城搜索集市搜索SPU搜索实时搜索搜索服务:

提供前台和后台系统搜索服务1.来源:

数据主要来自上面的核心业务服务接口,由业务接口通过tddl(淘宝的数据库分库架构类似B2B的corba)同步数据到DB(oracle&mysql),然后dump数据到搜索。

2.去处:

包括两方面:

前台集市搜索,spu搜索,商城搜索,社区搜索等后台-crm实时搜索,类目List等核心业务服务:

提供各种核心业务模块的服务化接口,接口按使用方式分两类:

(1)通过HSF方式调用的远程服务化接口

(2)通过定期推送服务端数据文件到客户端的CS调用图中:

蓝色标注的系统的部分接口使用第二中方式调用,其他系统基本都是基于HSF方式的远程调用。

.

(1)卖家行为:

主要定位在个人后台,且主要定位在后台的“我是卖家”TAB页下的功能,包括:

店铺管理,商品管理,订单管理,服务订购和使用,广告系统,社区发帖,淘宝客等等,前台浏览相对使用较少。

(2)买家行为:

集中在前台:

店铺浏览,宝贝的浏览,社区浏览等比重较大,买家后台功能主要定位在后台的“我是买家”Tab页下,包括拍商品,付款,确认,退款,评价,社区互动等。

产品:

淘宝对产品定义和B2B有差别,淘宝的业务拆分较细,服务化做的较成熟,所以前台应用对应的业务非常纯粹,如Detail系统可能就一个detail页面,无数据库连接,所有数据来自底层的各种服务化中心,功能专一逻辑清晰纯粹,不过也正因为这样,淘宝的一个产品可能是分布在多个应用系统中,单个应用很难称为一个产品。

淘宝更喜欢用产品线的概念,往往是一个团队负责一条产品线,跨几个功能纯粹的应用,如:

商品线交易线店铺线江湖线商城线等。

二.淘宝服务化进程罗马非一日建成,上面看到的相对成熟的服务化中心也是在淘宝业在务发展过程中不断的遇到问题,解决问题的过程中沉淀下来的,下面给大家简单图示下淘宝的服务化进程:

I最初的淘宝应用架构状况:

业务高度耦合,不同的功能模块基本都糅合在一个系统中,错综复杂,很有exodus2当初的味道啊!

II随着业务发展,抽提部分核心业务之后的状态:

对前台业务做了切分,抽提了部分核心业务成为独立的服务化提供中心。

不过抽提的业务较少,这个阶段缺少对不同层的针对性优化,比如监控,容灾,事务等等III大规模使用HSF,服务化相对成熟之后的状况:

前端应用高度分化,拆分成一个个功能单一的应用系统,后端服务化接口也划分的较细同时针对不同业务和具体的技术实现做个性化优化,增强了各个节点的健壮性,高效性。

通过上面的几张图可以明显的看出服务化给整个系统架构带来的好处:

(1)应用间的耦合降低,在服务化接口成熟的情况下,扩展新的业务需求变得方便,主要就是一个组合服务化接口的过程。

(2)开发人员可以专心关注业务,而不用考虑分布式领域中的各种细节技术,例如远程通讯、性能损耗、调用的透明化、同步/异步调用方式的实现等等问题。

(3)各个系统负责的业务更纯粹,方便做针对新的性能调优和功能改进:

如容灾性,并发,监控等方面的优化。

这种针对性有助于增强系统的高性能,高健壮。

三,淘宝服务化利器-HSF前台应用和核心业务层由于和业务结合比较紧密,篇幅限制这里就不展开讲了,后续会有针对各个细节业务和技术的分享,下面主要说说服务化中最重要的基础技术架构:

HSF(淘宝远程服务调用框架),并附实例做说说它们的使用方式。

(1)HSF是神马?

High-SpeedServiceFramework淘宝的高速远程调用框架,类似中文站的Dubbo,基于Mina框架开发,它是淘宝应用从集中式走入大型分布式的基础支撑。

使开发人员无需过多的关注应用是集中式的,还是分布式的,可以更加专注于应用的业务需求的实现,这些纯技术的需求都由HSF来解决。

(2)HSF的系统架构I.HSF交互场景图客户端(消费端)从配置中心获取服务端地址列表和服务端建立连接开始远程调用服务端更新通过notify(类似B2B的naplio)系统通知客户端。

服务端和客户端都有对应的监控中心,实时监控服务状态。

客户端,配置中心,服务端,notify,之间的通信都是通过TBRemotionAPI去搞定的。

II.TBRemoting架构图底层基于分布式框架Mina,主要的代码都是通过B2B的Dubbo也是基于这个NIO框架的。

Mina宝根据自身的需求做了一些封装,如果对这块感兴趣(3)HSF的工作原理:

淘宝的HSF在使用方式上面和Dubbo有比较大的区别做的好处是:

hsf的升级不需要应用做改动,方便统一升级统一管理版本也有要求,这也是当初Dubbo没有完全参考hsf1.1.HSF部署模型下图HSF部署模型:

使用之前,需要拷贝淘宝提供的SAR文件downloadURL:

http:

/发布和订阅服务和调用主要的代码都是通过NIO实现的。

关于Mina的具体实现大家可以google,篇幅限制不细讲.Mina上层封装的事件扩展,连接管理,线程池管理,序列化,包括最上面的Faade如果对这块感兴趣可以看看HSF的源码,需要的可以联系我!

有比较大的区别,HSF使用的时候需要单独的下载一个hsf.sar文件放置到jboss的方便统一升级统一管理;弊端也很明显:

增加了环境的复杂度,需要往jboss下扔sarhsf设计的主要原因。

HSF工作原理如下图:

需要拷贝淘宝提供的HSFSAR文件到Jboss的Deploy目录。

http:

/接口都是淘的deploy下面这样sar文件,对jboss1.JBoss服务器启动后,启动HSFSAR应用(即taobao.hsf.sar,本地开发机放在%DEPLOY_DIR%中,线上机器放置在/home/admin/$appName/target下)2.应用自身启动,Spring容器初始化。

这时:

HSFSpringProviderBean:

会进行初始化,将向configserver注册当前这个bean服务。

这一注册过程,简单理解其实就是告诉configserver:

IP为xxx.xxx.xxx.xxx的机器提供了xxx服务。

这样,configserver就可以根据服务调用者的请求中的服务名来转发推送服务地址了。

HSFSpringConsumerBean:

会进行初始化,将向configserver订阅当前这个bean服务,过程可以简单理解为:

告诉configserver:

IP为xxx.xxx.xxx.xxx的需要提供xxx服务,Configserver就会根据这一服务名返回给应用相应的服务地址。

3.在HSF服务调用者订阅到服务地址后,就可以使用该服务地址执行服务调用了。

一个HSF服务通常并不是由一台机器提供的,所以,订阅到的服务地址通常是一个地址列表,里面包含了所有提供了该服务的地址。

HSF会

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1