淘宝技术架构发展总结
淘宝技术架构介绍
Oracle
dump
Search
Node 1
Node 2
…… Node n
V2.1 2004.10 – 2007.01
· weblogic迁移至jboss
· 支持分库的数据访问框架
· 抛弃EJB · 引入Spring · 基于BDB的缓存 · 建立CDN
……OR淘-SFJM宝pBuOroanMipnsRc淘sVtgp-SiJMC宝oipBnnoragMispn3FsVgpuCOinnRcg淘t-SiJM宝opBnroaMipsn2sVFpgCuinOngRc淘t-SiJM宝opBnroaMipns1sVgpCing
Read
Read/Write
Slave1
复制
MySQL Master
复制
Read
Slave2
V1.1 2004.1 – 2004.5
·MySQL迁移至Oracle
·引入SQL Relay中间件
FunctionF4unction 3
Apache
ApachFeunction
2 Function
1
mod_phpm4od_php4Apache Apache
……
Node 2
功能分组2
Node 1
……
Node 2
功能分组3
Node 1
……
淘宝网的架构演进
Tolerance of network Partition
Basically Availble
Soft-state Eventual Consistency
数据库减负
数据库能做的事
–存数据 –单条查询 –多表关联查询 –大量数据实时在线分析 –通过存储过程,函数来处理业务
简化方案
cache
Search 分布式存储
Oracle Oracle
Node1 Node2
Node2 Read/Write …… Node2
Noden Noden
Node1
Noden
Oracle
Oracle
Node1
互联网应用的需求
高稳定性
–数据安全 –高可用性 高容量高性能 –并发处理能力 –高存储容量 –低响应时间 低成本 –硬件 可扩展
ቤተ መጻሕፍቲ ባይዱ
Node1
Noden
DB DB
新的挑战
可用性指标
–同城分流 –异地容灾 –负载均衡 –失效转移 –路由调整 –流量分配 –服务降级
多数据中心
–跨IDC的同步和访问
提升性能 降低成本 容量规划 前端优化
Questions ? Thank You!
陈康贤-淘宝首页技术架构
站在珠峰之巅—淘宝⾸首⻚页百亿级投放系统挑战
陈康贤 2019/04
⾸首⻚页场景下的核⼼心挑战
快速地/科学地迭代
极端稳定性
&
⼿手淘⾸首⻚页要解决什什么问题?淘系巨量量DAU 下流量量的精准匹配问题
需要满⾜足整个阿⾥里里⽣生态下,所有业务的分发,以及商业策略略的承载
需要
⽬目录1
如何快速的迭代
2
如何科学的迭代
3
如何保障⾸首⻚页的⾼高可⽤用4
Q/A
布局动态化—快速迭代
快速迭代的主要障碍
⽕火⻋车模型,固定的“发⻋车”时间,功能的发布取决于是否赶上最近的⽕火⻋车发⻋车时间
项⽬目1项⽬目2
项⽬目
3
⽕火⻋车头
⻋车站⾥里里程碑碑
功能集A
功能集B
功能集C
项⽬目集
超级APP 发布模型
发布周期⻓长需求响应不不灵活
客户端动态化能带来什什么
ReactNative(FB)
Weex(alibaba)
Flutter(Google)
Yoga(FB)
DinamicX(alibaba)
FlexBoxLayout (Google)
dynamic-load-apk
Instant App (Google)
Atlas(alibaba)
PWA
PhoneGap
微信⼩小程序
虚拟运⾏行行环境
web 容器器增强
业务插件化(android)
原有开发模式
偏动态
偏Native
布局动态化
动态化带来的好处
1.提⾼高迭代效率 — 相对native •研发效率:避免多端开发•更更新效率:避免版本依赖
2.提升体验 — 相对H5•类native 体验•功能强⼤大
客户端动态化技术演进
动态化技术⽅方案对⽐比
⽅方案迁移效率开发效率更更新效率稳定性流畅度适合场景
web容器器增强⾼高⾼高⾼高中低跨终端跨APP访问
案例淘宝技术发展史
淘宝技术发展
目录
一、引言
二、个人网站
三、Oracle/支付宝/旺旺
四、淘宝技术发展(Java时代:脱胎换骨)
五、淘宝技术发展(Java时代:坚若磐石)
六、淘宝技术发展(Java时代:创造技术-TFS)
七、淘宝技术发展(分布式时代:服务化)
作者:赵超
一、引言
光棍节的狂欢
“时间到,开抢!”坐在电脑前早已等待多时的小美一看时间已到2011 年11 月11 日零时,便迫不及待地投身于淘宝商城一年一度的大型网购促销活动——“淘宝双11购物狂欢节”。小美打开早已收藏好的宝贝——某品牌的雪地靴,飞快的点击购买,付款,一回头发现3000 双靴子已被抢购一空。
小美跳起来,大叫一声“欧耶!”
小美不知道,就在11 日零点过后的这一分钟内,全国有342 万人和她一起涌入淘宝商城。当然,她更不知道,
此时此刻,在淘宝杭州的一间办公室里,灯火通明,这里是“战时指挥部”,淘宝技术部的一群工程师,正在紧盯着网站的流量和交易数据。白板上是他们刚刚下的注,赌谁能最准确地猜中流量峰值和全天的交易总额。他们的手边放着充足的食物和各类提神的饮料。
一阵急促的电话声响起来,是前线部门询问数据的,工程师大声报着:“第 1 分钟,进入淘宝商城的会员有342 万”。过一会工程师主动拿起电话:“交易额超过 1 亿了,
现在是第8 分钟。”接下来,“第21 分钟,刚突破 2 亿”。“第32 分钟,3 亿了”。“第1 个小时,4.39 亿”。这些
数据随后出现在微博上,引起一片惊呼。
“完蛋了!”突然有人大喝一声,所有的眼睛都紧张的盯着他,只见他挠挠头,嘿嘿的笑道“我赌的少了,20 亿轻松就能过了,我再加 5 亿”,他跑去白板边上把自己的赌注擦去,写上25,接下来有人写上28,有人写上30,有人跑到微博上开下盘口,同事们纷纷转载下注。接下来的这24 个小时,战时指挥部的工程师们都不能休息,他们盯着网站的各种监控指标,适时的调整机器和增减功能。顶住第一波高峰之后,这些人开始忙里偷闲的给自己买东西,大家互相交流着哪家买的移动硬盘靠谱,哪家衣服适合自己的女朋友,不时的有人哀嚎宝贝被人抢了、信用卡额度不够了。同时,旁边白板上的赌注越下越大。
淘宝技术架构介绍, 了解淘宝,了解淘宝的架构需求
V3.0 消息系统 Notify
Topic方式
发送事务
A后PP续
处理1
2亿消息/天
送达率:99.99%
A续PP后
处理2
操作
A业PP务 系统
消息
A消PP息 系统
AP…P…
V3.0 可用性
同城分流幵容灾 异地容灾
主业务
可切换
边缘业务
主机房一
主机房二
数据同步
异地主机 房
自劢化/智能化
Boy: I wanna the fried chicken! HSF: Sir, we will be arriving at
Node n
V2 问题
上百人维护一个代码百万行的核心工程 多个业务系统中的超过1/3的核心代码重复 所有系统都要关心数据拆分规则 数据库连接达到上限 停电
V3.0 需求
支撑大型团队,丰富业务的幵行开发 支撑高速的业务增长 透明的数据和应用伸缩 提高可用性 开放
V3.0 2007.12 --
淘宝数据层 TDDL 淘宝服务导向框架 HSF 淘宝消息系统 Notify 非核心数据迁移MySQL 可用性 自劢化 TOP(淘宝开放平台)
复制
Read
Slave2
V1.1 过渡版本
V1.0问题
数据库容量限制 数据稳定性
V1.1需求
淘宝发展历程概述
淘宝发展历程概述
从2003年成立,淘宝搭建了电子商务生态圈。阿里巴巴是中国较大的网络广告交易平台,2008年9月与淘宝合并。在中国,有超过一百万的中小网站创造着超过80%的互联网流量,阿里巴巴帮助这些中小网站销售和变现他们的网络广告资源。
2004年前,互联网实验室电子商务网站CISI人气榜上,还没有淘宝网的位置;但从2004年2月开始,淘宝网以每月768.00%的速度上升到仅次于eBay易趣的第二位;在推出1年后,淘宝网排名已经超过eBay易趣,位居第一。来自艾瑞市场咨询的报告显示,2004年中国网上拍卖市场规模实现了217.8%的增长,全年成交金额从2003年的10.7亿元增至2004年的34亿元。
2005年的8月,淘宝网的发展脉络再度跟中国的宏观经济走向产生了微妙的重合,从这一年开始,淘宝网开始把它的竞争对手们抛在身后,它的每一个产品的推出都足以令业界瞠目,而它的执行能力和市场拓展能力使得它的每一个商业故事都变得可行而且耀眼。
2006年,淘宝网成为亚洲最大购物网站,就在这一年,淘宝网第一次在中国实现了一个可能——互联网不仅仅是作为一个应用工具存在,它将最终构成生活的基本要素,调查数据显示,每天有近900万人上淘宝网"逛街"。
2007年,淘宝网不再是一家简单的拍卖网站,而是亚洲最大的网络零售商圈。这一年,淘宝网全年成交额突破400亿,成中国第二大综合卖场。
2008年,淘宝B2C新平台淘宝商城(天猫前身)上线;汶川地震捐款平台上线,共筹得网友捐款超2000万;9月份,淘宝网单月交易额突破百亿大关。
技术选型tb的描述 -回复
技术选型tb的描述-回复
技术选型是指在项目或产品开发过程中,根据特定的需求、目标和条件,选择最适合的技术框架或工具。本文将围绕着“技术选型tb的描述”这个主题展开讨论,重点侧重于tb(淘宝)这一电商平台的技术选型及相关方面的介绍。
一、淘宝的背景与介绍
淘宝是中国最大的综合性电子商务平台,于2003年由阿里巴巴集团创立。淘宝以C2C模式为基础,打造了一个拥有数亿用户的购物平台。随着互联网的快速发展和消费行为的改变,淘宝不断优化和升级自身的技术架构,以应对日益增长和复杂化的业务需求。
二、技术选型的重要性
技术选型在电商平台的开发和运营中扮演着重要的角色。通过合理的技术选型,可以提高系统的性能和稳定性,降低系统的开发和运维成本,优化用户体验以及提升系统的可扩展性。
三、淘宝的技术架构
1. 分布式架构:淘宝采用了分布式架构来应对高并发的访问量和海量的数据处理需求。通过将业务按照不同的功能分解成独立的模块,并采用分布式计算和存储的方式,使得系统能够快速扩展和横向伸缩。
2. 高可用性和容错性:淘宝通过引入容灾机制和高可用性设计来保证系统的稳定运行。例如,采用分布式缓存和负载均衡等技术,以及多活数据中心部署和数据冗余备份策略等,确保了系统在单点故障或数据中心级别故障时的高可用性和容错性。
3. 数据挖掘和智能推荐:淘宝依托阿里巴巴集团强大的技术能力,构建了一套完整的数据挖掘和智能推荐系统。通过大数据分析和机器学习算法,淘宝能够根据用户的历史行为和偏好,提供个性化的商品推荐和搜索结果排序。
4. 移动化支持:随着移动互联网的普及,淘宝将移动化作为重点发展方向。淘宝借助大数据和云计算等技术手段,构建了移动端的技术架构,包括手机客户端和移动Web应用等,以提供便捷的购物体验和丰富的移动服务。
手机淘宝App技术架构
Weex开发框架
手淘Android发布频次
客户端团队
>30天 7天
2013 2014
30
22.5
15
3-4天
2015
7.5
1.7次/天
2016
0
谢谢!
超级App“淘宝”诞生之路
手机淘宝App技术架构
淘宝的移动互联网演进史
企业级移动开发平台EMAS
阿里巴巴移动场景最佳实践
手机淘宝演进历史(2008 - )
手淘早期的技术架构
技术限制业务发展
手机淘宝泛质量管理体系
线下 自动化保障
•
自动化驱动 性能度量: OnlineMonotor 稳定性度量: CrashReport 自定义事件度量: AppMonitor
多次灰度达到发布标准后进行正式的全量发布大数据体系进行线上问题的实时监控状态线上发现问题后数据体系及时报警通过排查等手段发现根因通过patch等手段修复问题手机淘宝泛质量管理体系淘宝的移动互联网演进史企业级移动开发平台emas阿里巴巴移动场景最佳实践淘宝的移动互联网演进史企业级移动开发平台emas阿里巴巴移动场景最佳实践超级app的架构设计千人千面的技术支撑端架构动态部署动态部署数据埋点移动中台远程配置数据网关消息推送数据中台用户画像推荐引擎深度学习平台能力计算平台红包的业务创新与技术挑战版本的持续交付与风险把控单一工程开发强耦合的架构就像两人三足需要所有人一起配合一个倒下了所有人玩完
淘宝网“双12”背后的技术故事
等多种数据源 , 供核心商 品 、 提 交易 、 用户和店 行 核心 数据 的访 问, 就会 带 来一个极 大 的挑 这
流量分配 。 铺等数据的存储和检索 。中心应用通过封装对数 战 :
据层 的访 问, 外提供 A I 供 各个前后台 系统 例 如 ,中心 应用A每天 对外 提供 的服 务 能力是 对 P, 访问。 前后台系统对淘宝网用户 ( 买家 、 卖家 ) 和 2 {, , O 前后台 ( 中有交易核心流程 , 07次 有5 个 其 淘宝网小二提供GU , I 供用户访问和执行业 务操 同时 也有 非核 心流程 的应用 系统 ) 系统 依赖 的 作。系统间的通信 , 主要通过淘宝 的高性能并发 于A。如果 5 个前后台系统访 问的均为同一组集 0 框架HS 同步 ) F( 和消息中间件 ( 异步 ) 进行 , 部 群 ,那么假 设某天一个后台系统 的需 求暴 增, 超 分通信通过J O H T ) S N( T P 等方式进行。 出了A的服 务范围 , 则极 有可能使交易核心流程
务平台到基础平台,从硬件 到软 件 , 从网络 到存
是隐藏 了很 多技 术细节的核心交易系统的结 储 , 容灾到监控 , 从 从沟通到协作 , 意识到流 图1 从 构 图。从宏观层面讲 , 核心交易系统主要有以下 程 ,以及无数次 的经验教训等 , 而非~朝一夕之 功 。要完整描述 “ 1”等类似的大促 行为对淘 双 2 宝网所有系统 、 昕有部门带 来的挑战 ,以及 应对 策略, 是件很困难的事情, 而且也不容易聚焦 , 因
淘宝功能架构图
介绍上图中提到的各个系统缩写意思
1.UIC: 用户中心(User Interface Center),提供所有用户信息相关的读写服务,如基本信息,扩展信息,社区信息,买卖家信用等级等等。 淘宝现在有两类卖家B 和C,这是通过在用户身上打不同的标签实现的,我们这次的无名良品卖家也是通过在用户身上打特殊的标签来区别于淘宝 已有的B 和C 类卖家。淘宝的TOP 平台已经开放了大部分的UIC 接口。 2.IC:商品中心(Item Center),提供所有商品信息的读写服务,比如新发商品,修改商品,删除商品,前后台读取商品相关信息等等,IC 是 淘宝比较核心的服务模块,有专门的产品线负责这块内容,IC 相关接口在TOP 中占的比重也比较大。 3.SC:店铺中心(Shop Center),类似中文站的旺铺,不过淘宝的SC 不提供页面级应用,提供的都是些远程的服务化的接口,提供店铺相关信 息的读写操作。 如:开通店铺,店铺首页,及detail 页面店铺相关信息获取,如店内类目,主营,店铺名称,店铺级别:如普通,旺铺,拓展版, 旗舰版等等。装修相关的业务是SC 中占比重较大的一块,现在慢慢的独立为一个新的服务化中心DC(design center),很多的前台应用已经通过直 接使用DC 提供的服务化接口直接去装修相关的信息。 4.TC:交易中心(Trade Center),提供从创建交易到确认收货的正 向交易流程服务,也提供从申请退款到退款完成的反向交易流程服务. 5.PC:促销中心(Promotion Center),提供促销产品的订购,续费,查询,使用相关的服务化接口,如:订购和使用旺铺,满就送,限时秒 杀,相册,店铺统计工具等等。 6.Forest:淘宝类目体系:提供淘宝前后台类目的读写操作,以及前后台类目的关联操作。 7.Tair:淘宝的分布式缓存方案,和中文站的Memcached 很像。其实也是对memcached 的二次封装加入了淘宝的一些个性化需求。 8.TFS:淘宝分布式文件存储方案(TB File System),专门用户处理静态资源存储的方案,淘宝所有的静态资源,如图片,HTML 页面,文本 文件,页面大段的文本内容如:产品描述,都是通过TFS 存储的。 9.TDBM:淘宝DB 管理中心(TB DB Manager), 淘宝数据库管理中心,提供统一的数据读写操作。 10.RC:评价中心(Rate center),提供评价相关信息的读写服务,如评价详情,DSR 评分等信息的写度服务。 11.HSF:淘宝的远程服务调用框架和平台的Dubbo 功能类似,不过部署方式上有较大差异,所有的服务接口都通过对应的注册中心(config center)获取。
淘宝功能架构图
介绍上图中提到的各个系统缩写意思wenku.baidu.com
1.UIC: 用户中心(User Interface Center),提供所有用户信息相关的读写服务,如基本信息,扩展信息,社区信息,买卖家信用等级等等。 淘宝现在有两类卖家B 和C,这是通过在用户身上打不同的标签实现的,我们这次的无名良品卖家也是通过在用户身上打特殊的标签来区别于淘宝 已有的B 和C 类卖家。淘宝的TOP 平台已经开放了大部分的UIC 接口。 2.IC:商品中心(Item Center),提供所有商品信息的读写服务,比如新发商品,修改商品,删除商品,前后台读取商品相关信息等等,IC 是 淘宝比较核心的服务模块,有专门的产品线负责这块内容,IC 相关接口在TOP 中占的比重也比较大。 3.SC:店铺中心(Shop Center),类似中文站的旺铺,不过淘宝的SC 不提供页面级应用,提供的都是些远程的服务化的接口,提供店铺相关信 息的读写操作。 如:开通店铺,店铺首页,及detail 页面店铺相关信息获取,如店内类目,主营,店铺名称,店铺级别:如普通,旺铺,拓展版, 旗舰版等等。装修相关的业务是SC 中占比重较大的一块,现在慢慢的独立为一个新的服务化中心DC(design center),很多的前台应用已经通过直 接使用DC 提供的服务化接口直接去装修相关的信息。 4.TC:交易中心(Trade Center),提供从创建交易到确认收货的正 向交易流程服务,也提供从申请退款到退款完成的反向交易流程服务. 5.PC:促销中心(Promotion Center),提供促销产品的订购,续费,查询,使用相关的服务化接口,如:订购和使用旺铺,满就送,限时秒 杀,相册,店铺统计工具等等。 6.Forest:淘宝类目体系:提供淘宝前后台类目的读写操作,以及前后台类目的关联操作。 7.Tair:淘宝的分布式缓存方案,和中文站的Memcached 很像。其实也是对memcached 的二次封装加入了淘宝的一些个性化需求。 8.TFS:淘宝分布式文件存储方案(TB File System),专门用户处理静态资源存储的方案,淘宝所有的静态资源,如图片,HTML 页面,文本 文件,页面大段的文本内容如:产品描述,都是通过TFS 存储的。 9.TDBM:淘宝DB 管理中心(TB DB Manager), 淘宝数据库管理中心,提供统一的数据读写操作。 10.RC:评价中心(Rate center),提供评价相关信息的读写服务,如评价详情,DSR 评分等信息的写度服务。 11.HSF:淘宝的远程服务调用框架和平台的Dubbo 功能类似,不过部署方式上有较大差异,所有的服务接口都通过对应的注册中心(config center)获取。
淘宝技术架构分享
系统的高性能,高健壮。
三,淘宝服务化利器--HSF
前台应用和核心业务层由于和业务结合比较紧密,篇幅限制这里就不展开讲了,后续会有针对各个细节业务和技术的分享,下面主要说说服务化 中最重要的基础技术架构:HSF(淘宝远程服务调用框架),并附实例做说说它们的使用方式。
HSFSpringProviderBean: 会进行初始化,将向config server 注册当前这个bean 服务。这一注册过程,简单理解其实就是告诉config
server:IP 为xxx.xxx.xxx.xxx 的机器提供了xxx 服务。这样,config server 就可以根据服务调用者的请求中的服务名来转发推送服务地址了。
Oracle
淘宝共享服务
UIC
IC
SC
TC
PC
Search接口 LB配置
数据共享系统 TDBM
Tair
TFS 快照
Search 接口
Dump中心
Build索引
分发索引文件
搜索引擎系统 大C搜索
SPU搜索
实时搜索 …搜索
我介绍下图中提到的各个系统缩写是神马意思:
1.UIC: 用户中心(User Interface Center),提供所有用户信息相关的读写服务,如基本信息,扩展信息,社区信息,买卖家信用等级等等。 淘宝现在有两类卖家 B 和 C,这是通过在用户身上打不同的标签实现的,我们这次的无名良品卖家也是通过在用户身上打特殊的标签来区别于淘宝 已有的 B 和 C 类卖家。淘宝的 TOP 平台已经开放了大部分的 UIC 接口。
淘宝网技术架构
淘宝网的开源架构
淘宝网,是一个在线商品数量突破一亿,日均成交额超过两亿元人民币,注册用户接近八千万的大型电子商务网站,是亚洲最大的购物网站。那么对于淘宝网这样大规模的一个网站,我猜想大家一定会非常关心整个网站都采用了什么样的技术、产品和架构,也会很想了解在淘宝网中是否采用了开源的软件或者是完全采用的商业软件。那么下面我就简单的介绍一下淘宝网中应用的开源软件。
对于规模稍大的网站来说,其IT必然是一个服务器集群来提供网站服务,数据库也必然要和应用服务分开,有单独的数据库服务器。对于像淘宝网这样规模的网站而言,就是应用也分成很多组。那么下面,我就从应用服务器操作系统、应用服务器软件、Web Server、数据库、开发框架等几个方面来介绍一下淘宝网中开源软件的应用。
操作系统
我们首先就从应用服务器的操作系统说起。一个应用服务器,从软件的角度来说他的最底层首先是操作系统。要先选择操作系统,然后才是操作系统基础上的应用软件。在淘宝网,我们的应用服务器上采用的是Linux操作系统。Linux 操作系统从1991年第一次正式被公布到现在已经走过了十七个年头,在PC Server上有广泛的应用。硬件上我们选择PC Server而不是小型机,那么Server 的操作系统供我们选择的一般也就是Linux,FreeBSD, windows 2000 Server
或者Windows Server 2003。如果不准备采用微软的一系列产品构建应用,并且有能力维护Linux或者FreeBSD,再加上成本的考虑,那么还是应该在Linux和FreeBSD之间进行选择。可以说,现在Linux和FreeBSD这两个系统难分伯仲,很难说哪个一定比另外一个要优秀很多、能够全面的超越对手,应该是各有所长。那么在选择的时候有一个因素就是企业的技术人员对于哪种系统更加的熟悉,这个熟悉一方面是系统管理方面,另外一方面是对于内核的熟悉,对内核的熟悉对于性能调优和对操作系统进行定制剪裁会有很大的帮助。而应用全面的优化、提升性能也是从操作系统的优化开始的。
淘宝网图片存储系统架构
本文侧重介绍淘宝网后台的图片存储系统架构、包括TFS 集群文件系统,以及前端处理服务器架构。
解决海量并发小文件的系统噩梦
对于淘宝网这类型访问量极高的电子交易网站来说,对图片系统的要求和日常的照片分享完全不在一个级别。日常照片分享往往集中在几个有限的亲朋好友之间,访问量不会特别高,而淘宝网商铺中的商品照片,尤其是热门商品,图片的访问流量其实是非常大的。而且对于卖家来说,图片远胜于文字描述,因此卖家也格外看重图片的显示质量、上传时间、访问速度等等问题。根据淘宝网的流量分析,整个淘宝网流量中,图片的访问流量会占到90%以上,而主站的网页则占到不到10%。
淘宝网电子商城首页截图,淘宝网的后端系统上保存着286亿多个图片文件,淘宝网整体流量中,图片的访问流量要占到90%以上。且这些图片平均大小为17.45KB,小于8K的图片占整体图片数量61%,整体
系统容量的11%
与此同时,这些图片的存储与读取还有一些头疼的要求:例如,这些图片要求根据不同的应用位置,生成不同大小规格的缩略图。考虑到多种不同的应用场景以及改版的可能性,一张原图有可能需要生成20多个不同尺寸规格的缩略图。
淘宝整体图片存储系统容量1800TB(1.8PB),已经占用空间990TB(约1PB)。保存的图片文件数量达到286亿多个,这些图片文件包括根据原图生成的缩略图。平均图片大小是17.45K;8K以下图片占图片数总量的61%,占存储容量的11%。
这就给淘宝网的系统带来了一个巨大的挑战,众所周知,对于大多数系统来说,最头疼的就是大规模的小文件存储与读取,因为磁头需要频繁的寻道和换道,因此在读取上容易带来较长的延时。在大量高并发访问量的情况下,简直就是系统的噩梦。
51-电子商务网站(淘宝网)的系统架构解析
电子商务网站(淘宝网)的系统架构解析
淘宝网,是一个在线商品数量突破一亿,日均成交额超过两亿元人民币,注册用户接近八千万的大型电子商务网站,是亚洲最大的购物网站。那么对于淘宝网这样大规模的一个网站,我猜想大家一定会非常关心整个网站都采用了什么样的技术、产品和架构,也会很想了解在淘宝网中是否采用了开源的软件或者是完全采用的商业软件。那么下面我就简单的介绍一下淘宝网中应用的开源软件。
对于规模稍大的网站来说,其IT必然是一个服务器集群来提供网站服务,数据库也必然要和应用服务分开,有单独的数据库服务器。对于像淘宝网这样规模的网站而言,就是应用也分成很多组。那么下面,我就从应用服务器操作系统、应用服务器软件、Web Server、数据库、开发框架等几个方面来介绍一下淘宝网中开源软件的应用。
操作系统
我们首先就从应用服务器的操作系统说起。一个应用服务器,从软件的角度来说他的最底层首先是操作系统。要先选择操作系统,然后才是操作系统基础上的应用软件。在淘宝网,我们的应用服务器上采用的是Linux操作系统。Linux操作系统从1991年第一次正式被公布到现在已¾¬走过了十七个年头,在PC Server上有广泛的应用。硬件上我们选择PC Server而不是小型机,那么Server的操作系统供我们选择的一般也就是Linux,FreeBSD,windows2000 Server或者Windows Server2003。如果不准备采用微软的一系列产品构建应用,并且有能力维护Linux或者FreeBSD,再加上成本的考虑,那么还是应该在Linux和FreeBSD之间进行选择。可以说,现在Linux和FreeBSD这两个系统难分伯仲,很难说哪个一定比另外一个要优秀很多、能够全面的超越对手,应该是各有所长。那么在选择的时候有一个因素就是企业的技术人员对于哪种系统更加的熟悉,这个熟悉一方面是系统管理方面,另外一方面是对于内核的熟悉,对内核的熟悉对于性能调优和对操作系统进行定制剪裁会有很大的帮助。而应用全面的优化、提升性能也是从操作系统的优化开始的。
淘宝网技术
高性能电子商务网站-淘宝网技术架构研究
2008年淘宝的交易额是1000亿规模,2009年的时候是2000亿规模,2010年淘宝网的交易额4000亿规模,如何构建一个支撑这么大交易规模的高性能、并发的电子商务平台网站呢?以下结合网络资料,研究一下淘宝网的技术架构变迁。
淘宝网从2003年开始建立的,从1.0到1.5的版本.2005年开始2.0的版本,2012年4.0的版本上线。
马云的创业团队共10个人,马云以及他的秘书,8个里面有3个开发人员,三丰、多龙(音)、虚竹,还有UED的二当家,三位运营人员,小宝、阿柯和破天,总经理是财神。团队开始研发是2003年4月7日,一个月后的5月10日淘宝第一个版本上线。这段时间,创业团队关在小区里面写代码,每天早上9点到晚上1、2点。
淘宝网第一个版本MALT架构,采用PHP+MySQL
首先花2000美金买了一个MALT架构网站,很精典的LAMP技术架构,刚开始的编程语言和数据库是PHP+MySQL,然后配套开发后台管理系统。一开始部署在一台单机服务器上,流量增长后,把发邮件功能部署在一台机器上,后来再增加机器出来。
2004年MySQL撑不住了,数据存储的引擎很大缺点会锁表,一读的话把表锁住了,读的量一上来经常会锁掉,然后重启。MySQL撑不住了,开始考虑换Oracle,除了Oracle强大之外还有一个原因是阿里巴巴那些年03、04年Oracle 人才积累达到非常强大的水平。那时Oracle给全球的研发人员发一个称号“ACE”,那时全球三百多位,那时中国十来位,而阿里巴巴有三位。阿里巴巴在Oracle方面能力非常强大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从个人网站到淘宝网仰观Java时代淘宝的技术发展(1)引言
光棍节的狂欢
“时间到,开抢!”坐在电脑前早已等待多时的小美一看时间已到2011年11月11日零时,便迫不及待地投身于淘宝商城一年一度的大型网购促销活动——“淘宝双11购物狂欢节”。小美打开早已收藏好的宝贝——某品牌的雪地靴,飞快的点击购买,付款,一回头发现3000双靴子已被抢购一空。
小美跳起来,大叫一声“欧耶!”
小美不知道,就在11日零点过后的这一分钟内,全国有342万人和她一起涌入淘宝商城。当然,她更不知道,此时此刻,在淘宝杭州的一间办公室里,灯火通明,这里是“战时指挥部”,淘宝技术部的一群工程师,正在紧盯着网站的流量和交易数据。白板上是他们刚刚下的注,赌谁能最准确地猜中流量峰值和全天的交易总额。他们的手边放着充足的食物和各类提神的饮料。
一阵急促的电话声响起来,是前线部门询问数据的,工程师大声报着:“第1分钟,进入淘宝商城的会员有342万”。过一会工程师主动拿起电话:“交易额超过1亿了,现在是第8分钟。”接下来,“第21分钟,刚突破2亿”。“第32分钟,3亿了”。“第1个小时,亿”。这些数据随后出现在微博上,引起一片惊呼。
“完蛋了!”突然有人大喝一声,所有的眼睛都紧张的盯着他,只见他挠挠头,嘿嘿的笑道“我赌的少了,20亿轻松就能过了,我再加5亿”,他跑去白板边上把自己的赌注擦去,写上25,接下来有人写上28,有人写上30,有人跑到微博上开下盘口,同事们纷纷转载下注。接下来的这24个小时,战时指挥部的工程师们都不能休息,他们盯着网站的各种监控指标,适时的调整机器和增减功能。顶住第一波高峰之后,这些人开始忙里偷闲的给自己买东西,大家互相交流着哪家买的移动硬盘靠谱,哪家衣服适合自己的女朋友,不时的有人哀嚎宝贝被人抢了、信用卡额度不够了。同时,旁边白板上的赌注越下越大。
11月11日,这个棍子最多的日子被网民自我调侃的变成了一个节日——“光棍节”。而淘宝网又用疯狂的折扣促销给它赋予了另外一个意义——“购物狂欢节”。2011年11月11日这一天,淘宝商城与淘宝网交易额之和突破52亿,这个数字是“购物天堂”香港一天零售总额亿的6倍。
网民感受到的是疯抢的喜悦,而网站的技术人员感受到的却是“压力山大”。就如同你家办酒席,宴请左邻右舍,这个办起来容易。倘若宴请十里八乡所有的人,吃饭的人自然开心,但却不是一般人家能够办得起来的。能办得起来如此盛宴者,需要强大的财力物力、组织能力、技术实力(例如做这么多菜,你的炒锅一定要是“分布式的”、“可复制的”、“可扩展的”,洗菜切菜要有“工作流引擎”,上菜的路径要用图论来计算出来,甚至连厨房的下水道都要重新设计)。
淘宝能够举办如此盛宴,网站的技术实力可见一斑。淘宝网拥有全国最大的hadoop分布式计算集群之一,日新增数据50TB,有40PB海量数据存储。分布在全国各地80多个节点的CDN网络,支持的流量超过800Gbps。淘宝的搜索引擎能够对数十亿的商品数据进行实时搜索,另外还拥有自主研发的文件存储系统和缓存系统,以及java中间件和消息中间件系统,这一切组成了一个庞大的电子商务操作系统。另外从商业数据上来看,AMAZON的财报显示2011年完成了大约 480亿美金的交易额,EBAY2011年财报全年完成了大约600亿美金的交易额(不包括其独立的汽车交易平台)。不管从交易额、商品数量、同比增速等指标上看,淘宝网均远超于此,是目前全球最大的电子商务平台。(由于淘宝非上市公司,未公布2011年业绩,以上内容来自淘宝网技术副总裁@_行癫的微博)
以上这些技术数据可能已经让一些同学产生不适的感觉,为了让更多的人读懂这本书,我们从技术的角度来看,小美访问淘宝网的时候,网站上发生了什么事情。下参考资料:《你刚才在淘宝上买了一件东西【技术普及帖】》,来自南京邮电大学孙放同学
为了有个更直观的对比,我们说一个同行,他在2011年光棍节之前做促销,流量上去之后,达到12Gbps (他们有这么大的流量,老板很高兴,在微博上面说了这个数据),这时候流量达到了极限,网站几乎挂掉,用户无法下订单。而淘宝网光棍节当天网络的流量最高达到800多Gbps,带给各家银行和快递公司的流量也让他们压力山大,如临大敌(后来,他们以能够撑住淘宝带来的流量为荣而到处宣传)。另外如果你在网上购买过火车票的话,更能体会到网站能支持多大的流量有多重要。但这不是一朝一夕做出来的,也不是有钱就能办到的。
以上对比的这些网站,也许读者很容易就猜到是哪一家,这里拿出来作对比,绝对没有嘲笑人家的意思,采用通常的网站技术方案,能做到这种程度已经不错了。任何网站的发展都不是一蹴而就的,在什么样的阶段采用什么样的技术。在发展的过程中网站会遇到各种各样的问题和业务带来的压力,正是这些原因才推动着技术的进步和发展,而技术的发展又会反过来促进业务的更大提升。二者互为因果,相互促进。如今淘宝网的流量已经是全球排名第12、国内排名第3(美国的ebay全球排名23,国内前两名是百度和腾讯)。淘宝网的系统也从使用一台服务器,到采用万台以上的服务器。本书就为大家描述淘宝网在整个发展过程中,所有的主动和被动的技术变革的前因后果,这由很多有趣的故事组成。
正如同很多人或组织成功了以后,就会为自己的出身编造一个美丽的传说。淘宝网的出身,网上也有非常多的传说,下面我们就从它的出生开始讲起。
个人网站
2003年4月7日,马云,在杭州,成立了一个神秘的组织。他叫来十位员工,要他们签了一份协议,这份协议要求他们立刻离开阿里巴巴,去做一个神秘的项目。这个项目要求绝对保密,老马戏称“连说梦话被老婆听到都不行,谁要是透漏出去,我将追杀到天涯海角”。这份协议是英文版的,匆忙之间,大多数人根本来不及看懂,但出于对老马的信任,都卷起铺盖离开了阿里巴巴。
他们去了一个神秘的据点——湖畔花园小区的一套未装修的房子里,房子的主人是马云。这伙人刚进去的时候,马云给他们布置了一个任务,就是在最短的时间内做出一个个人对个人(C2C)的商品交易的网站。现在出一个问题考考读者,看你适不适合做淘宝的创业团队。亲,要是让你来做,你怎么做
在说出这个答案之前,容我先卖个关子,介绍一下这个创业团队的成员:三个开发工程师(虚竹、三丰、多隆)、一个UED(二当家)、三个运营(小宝、阿珂、破天)、一个经理(财神)、还有就是马云和他的秘书。当时对整个项目组来说压力最大的就是时间,怎么在最短的时间内把一个从来就没有的网站从零开始建立起来了解淘宝历史的人知道淘宝是在2003年5月10日上线的,这之间只有一个月。要是你在这个团队里,你怎么做我们的答案就是:买一个来。