仰观Java时代淘宝
2012年4月的淘宝相关数据:
- 80多个CDN分布节点
- 最大的Hadoop分布式集群,每日新增50TB数据,有40PB海量数据
- 淘宝网光棍节当天网络的流量最高达800Gbps
TB经历了一个主动和被动的技术变革的过程,不管我们是否需要认可“变化”。
典型的个人网站
DP网的发展史走过时曾相似的道路
三个开发工程师(虚竹、三丰、多隆)、一个UED(二当家)、三个运营(小宝、阿珂、破天)、一个经理(财神)、还有就是马云和他的秘书
淘宝的第一份代码 PHPAuction 2000美金(含源代码)
淘宝最早的结构
欣赏外观
最高每日31万PV,2003从5月到年底成交额4000万
淘宝第一个版本的系统里面已经包含了商品发布、管理、搜索、商品详情、出价购买、评价投诉、我的淘宝这些功能(现在主流程中也是这些模块。在2003年10月增加了一个功能节点:“安全交易”,这个是支付宝的雏形)
服务器由最初的一台变成了三台,一台负责发送email、一台负责运行数据库、一台负责运行webApp,采购了NetApp服务器放置iSearch
Oracle/支付宝/旺旺
mysql->Oracle
PHP的Oracle的链接池问题,多隆寻找到开源方案
NAS的NFS(Network File System)协议传输的延迟很严重,SAN低端存储,性能一下子提升了10几倍
好的架构是进化来的,不是设计来的
2003年10月,淘宝网上面上线了一个功能,叫做“安全交易”
好的功能也是进化来的,不是设计来的
2004年3月开始 阿里旺旺上线,解决了用户讨价还价的需求,是从阿里借调过来的产物,可见马云在资源的使用上有独到之处。
Java时代:脱胎换骨
2004年底 迁移到JAVA的架构图
其实在任何时候,开发语言本身都不是系统的瓶颈,业务带来的压力更多的是压到了数据和存储上。上面一篇也说到,MySQL 撑不住了之后换Oracle,Oracle的存储一开始在本机上,后来在NAS上,NAS撑不住了用EMC的SAN存储,再然后Oracle的RAC撑不 住了,数据的存储方面就不得不考虑使用小型机了。在2004年的夏天,DBA七公、测试工程师郭芙和架构师行癫,踏上了去北京测试小型机的道路。他们带着 小型机回来的时候,我们像欢迎领袖一样的欢迎他们,因为那个是我们最值钱的设备了,价格表上的数字吓死人。小型机买回来之后我们争相合影,然后 Oracle就跑在了小型机上,存储方面从EMC低端cx存储到Sun oem hds高端存储,再到EMC dmx高端存储,一级一级的往上跳。
行癫在淘宝的第一个架构上的作品就来解决了这个问题,他写了一个数据库路由的框架DBRoute
在05年的时候,把商品详情放在数据库的另外一张表里面,再往后这个大字段被从数据库里面请了出来,这也让数据库再一次感激涕零。
TFS
淘宝网整体流量中,图片的访问流量要占到90%以上。且这些图片平均大小为17.45KB,小于8K的图片占整体图片数量61%,占整体系统容量的11%。
2007年之前的图片存储架构如下图:
TFS的架构,类似google的GFS