江油论坛

 找回密码
 立即注册
查看: 2089|回复: 20

对这次抢购Ip6想说的话,和分享的一点干货。

[复制链接]

4

主题

4

帖子

346

积分

中级会员

Rank: 3Rank: 3

积分
346
QQ
发表于 2014-11-22 20:41:00 | 显示全部楼层 |阅读模式
对于这次IP6抢购。很多科技公司都有过这样那样的问题,比如原价卖5000,因为系统被黑,或者程序员问题变成了五块,很多科技公司的做法是在承认自己的问题的同时,一方面追究责任,一方面还是会认可这部分损失。因为消费者只用参与,他不需要知道背后的技术原理,如果出现问题。消费者一定是最后责任人。因为消费者不知道网站用的什么技术。也不应该对有人使用外挂程序负责。消费者具有绝对的被法律授予的知情权,但是他们的知情权也是有限的。


再分享一点干货,知乎上一篇文章,如何打败淘宝。


我的这篇主要从 淘宝的技术角度来回答这个问题,毕竟淘宝是家高科技公司,对吧。我也希望诸位客官读完之后能有这样一种感觉: 能用钱解决的问题都是小问题,更不要孤立的看待淘宝,因为淘宝已经不单单是个电商,而能不能打败淘宝也不是能用具体的金钱衡量的。

在此先特别声明,本回答以下涉及淘宝技术论证的部分,所采用的数据、内幕秘闻等材料100%来自于《淘宝技术这十年》 @子柳 著。该书是近年来少有的互联网技术总结之作,本人在5月16取到书,开始因为书薄价贵而感觉上当受骗(总共239页,要45大洋),不过读了几页之后便欲罢不能,一口气读完、可谓酣畅淋漓。本回答技术部分所采纳内容不及原著百分之一,语言亦远不如原著精彩,所以建议对淘宝技术内幕感兴趣的还是看看这本原著,相信收获不会太小。

很多人看到的都是淘宝表面的东西,比方讲销售额、一万亿神马的。但你要是知道淘宝是如何发展成今天的这个样子后,也就明白其实超越淘宝最难的不是钱, 到了淘宝的那个水准,能用钱解决的问题都不是问题(马云说过类似的话,即能用钱解决的问题都不是问题 )
最早搞淘宝的那帮人是从阿里巴巴出来的,当时老马规定任务,让他们在1个月内把淘宝搞出来(那时还没有淘宝这个名字,淘宝、支付宝其实都是后来淘宝的同一个员工起的,还是个MM,和马云没关系)。现在考考你吧,如果让你在一个月内建一个网站,你怎么做?当时淘宝工程师的方案是:从美国人那里买了一个LAMP(Linux+Apache+MySQL +PHP)架构的网站,当时花了多少银子呢?2000美刀左右吧(当然,源代码也买来咯)。。这时你要注意,这是淘宝的初创期,所有遇到的问题和困难都能用钱解决,但随着日后淘宝规模的急速扩大,之后淘宝人所遇到的问题,几乎是全世界范围内前无古人的难题,是花钱也买不到的了。这点之后再表。
花了2000美刀买来一个网站系统,加以简单的修改,比如改一下数据类型、增加后台管理功能、页面模板美化等等,这其中稍有技术含量的也就是对数据库进行了一个修改,把一个数据库拆成了一个主库、两个从库,并且读写分离(顺便说一句,当时该项目的代号叫 BMW,因为项目二当家喜欢宝马,听说后来这位二当家的座驾就是一辆宝马X5,算是如愿所偿了)。如此一番改装后,网站便立即投入了使用,这是 2003年5月10日的事儿,到了 这年的年底,,淘宝已经有32W注册用户,每日31万个PV(page view页面访问量),交易额在3371万元。
随着淘宝用户需求和流量的不断增长,服务器从最初的一台变成了三台( 没错,淘宝一开始只有一台服务器~!),一台发送e-mail、一台负责运行数据库、一台负责运行WebApp,并且淘宝的首席架构师还把阿里巴巴中文站的搜索引擎iSearch搬到了淘宝。
当时淘宝访问量增长速度是飞速甚至是今天看起来有些野蛮的,所以很快,数据库的问题就出来了,当年的MySQL还不是今天各位见到的MySQL,跟Oracle这样的大牌相比,那时的MySQL存在着先天的不足(数据容量和安全性)。既然MySQL存在问题,那二话不说就得解决,最后的方案就是换成Oracle。到这里不得不插一句,当年阿里巴巴的DBA团队是相当牛的,Oracle的ACE头衔拥有者,当时全球只有十几个而已,可在阿里就有4名,所以那你想想看,如果超越阿里巴巴或是淘宝,不说钱,你有没有那么顶尖的工程师,顶尖人才可不仅仅是钱能请来的啊。
换成Oracle之后,问题仍旧很多。由于PHP语言对数据库的访问都是直接的,每一个请求都要一个连接。如果是长连接而且连接数增多,就会把数据库拖垮,反之如果是短连接,频繁地连接断开,性能会大幅降低。后来淘宝的情报部门打探到eBay在使用一个连接池的工具,是BEA卖个他们的,可是对当时的淘宝来说,BEA的东西太贵买不起,所以 搞了一个开源的连接池代理服务SQL Relay(http://sqlrealy.sourceforge.net),淘宝的架构师进行一番改进后,便开始使用。但是使用了这项技术后,新的问题又出现了:SQL Relay经常会死锁,虽然架构师尽力做了许多修改,但内部处理的逻辑不对,问题仍是很多,死锁会频繁出现。当时解决的方法,只有重启,对于淘宝工程师来说最痛苦的,可能就是在晚上也会出现死锁,所以那段时间淘宝的工程师24小时手机开机是常态,一收到出现死锁的短信,就要马上接上机房的网络,进行重启(当时干这事最多的人,现在已经是淘宝网的总裁了,所以讲牛人常常也要有段苦逼的岁月)。到了大概在2003年的10月份左右,淘宝推出了一个新的功能,叫做“ 安全交易”,也就是支付宝的验证型;到2004年的3月份,淘宝旺旺诞生(淘宝旺旺是由一个工程师做的,据说淘宝旺旺的在线数创新高后,淘宝的这帮人请这个工程师吃了一顿鸭脖子,因为这个工程师最爱吃鸭脖子)。从中我们也不难看到,淘宝早期的创新精神是非常非常之高的,而且想得快,做的也快,热情和技术都没的说。不过也只有这样,才有机会脱颖而出啊。
SQL Relay问题的存在,使得追求完美的淘宝的工程师觉得用不断重启来保证系统的稳定性是不能忍受的,所以在2004年上半年开始,整个淘宝网站就开始了一个脱胎换骨的手术。
在2004年的上半年,淘宝干了一件什么事呢? 淘宝更新了开发语言,从PHP化成了java(不得不说真是精益求精啊,要全部重来,敢干啊)。当时淘宝网站已经颇具规模,要一边更换语言,一边还要维持网站的正常运营,比做个新的网站要难多了。这就好比是做一场非常精密的外科手术,要技术非常高超才行。当时淘宝把Sun公司的人请来做这件事,在这个阶段,针对网站存在的问题,淘宝引入了搜索引擎、打造了自己的MVC框架WebX(http://www.openwebx.org/docs/Webx3_Guide_Book.heml)。 在2004年底,淘宝上线1年之后,淘宝已经有4百万多种商品了,日均4KW+个PV,注册会员400w+,全网成交额10亿+。
紧接着,围绕性能、容量和成本的进化,淘宝采用分库页表技术对Oracle进行了扩展,当时搞了三个数据库,以此来突破一台Oracle的处理上限。三个库,一个用来存放用户信息和对应的商品信息,一个用来存放用户信息和对应的卖家信息,第三个用来存放商品类目等通用信息(这样做还有容灾的好处,即万一一个数据库挂了,还有一半的商品可以买卖)。但是这样做也有问题,一个买家购买的商品在两个数据库里,那么在查看已购买商品时,应用程序要到两个数据库里去找,这还好说,可如果要按照时间排序怎么办?分页如何处理?关键字查询如何处理?专业一点的说法就是 数据的Join没法做了。这时轮到大师出手了,淘宝里有一个人,动手写了一个数据库路由的框架,叫DBRoute,把数据库的合并、排序、分页等操作大一统了。并且在当时用Spring替换掉了EJB,给整个系统精简了很多代码。 到了2005年,淘宝的商品数达到1663w个,PV有8931W个注册会员有1390w个。数据量大,存储压力大,速度就慢,所以淘宝又搞出了 缓存和CDN(内容分发网络)。 到了2006年,淘宝网已经有了1.5亿个日均PV,商品数达5kw+,注册用户3kw+,全网交易量169亿(6年之后,2012年双十一淘宝网一天的交易量就到了191亿)。
为什么要一直在淘宝技术改进过程中强调规模性,可以说是规模会决定你所需要的技术。当你成为业内最强的时候,你的问题就成了别人没碰到过的问题,你需要的技术也就是世上没有的技术。这意味着你必须要自己解决问题,自己创造技术,没法买、也没处买。于是,在2006年,淘宝开始走上了自主开发技术的道路,也正是这一年,淘宝开始了创造技术。
随着淘宝的发展和成熟,他们当时遇到的问题不仅没有减少,反而是增加的。举个例子,当卖家卖商品时,有时会进行一些打折促销,也就是说同一件商品价格会发生改变。那么已经成交的商品信息该如何处理?最好的方式是商品快照,每完成一笔交易,就用快照的方式保存下来。这样一来,用户的体验是爽了,但系统的存储成本大幅提升(淘宝2010年后端系统上的图片量即达到286亿)。早些时候,淘宝采用NetApp公司的文件存储系统,但随着图片数据量以每年3倍速率的增长,到2006年时,即便NetApp公司 最高端最顶级的产品也无法满足淘宝的需要,所以从2006年开始,淘宝决定开发一套针对海量小文件存储的文件系统,来解决自身图片的存储难题(顶级技术,和他们遇到相似难题的,另外一是google搞了GFS,当然谷歌搞的早。腾讯的和这个同名,也叫TFS)。淘宝文件存储系统的构建者是章文嵩博士,2007年淘宝开发出了 TFS(TaoBao File System)[以谷歌的GFS为基础,加上了针对小文件存储的创新]。同年7月,TFS正式上线。集群规模达到了200台PC Server(146GB*6SAS 15KB Raid5),文件数上亿级别;系统部署存储量140TB,实际使用量50TB;单台支持随机IOPS 200+,流量为3MB/S。2007年的另外一项重要技术创造,就是淘宝推出了 自创的Key—Value缓存系统。自从2006年踏上自主自助创新之路至今,淘宝有相继搞出了 服务化、中间件,session框架,开放平台,分布式电子商务,操作系统等多项尝试,并取得了成功。

上面谈了很多技术方面的问题,没谈钱,是因为有些技术根本就是钱所买不到的,在淘宝之前根本就没有现成的技术供选择。

下面不谈技术,想谈谈一点别人对淘宝的误解,看看你是不是也这么想的。
回复

使用道具 举报

0

主题

9846

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
29652
QQ
发表于 2014-12-25 20:49:04 | 显示全部楼层
很好哦
回复 支持 反对

使用道具 举报

2

主题

8720

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
26418
QQ
发表于 2014-12-25 12:58:21 | 显示全部楼层
好资源就是拿来分享的,感谢楼主喽!
回复 支持 反对

使用道具 举报

3

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
30822
QQ
发表于 2014-12-25 14:23:08 | 显示全部楼层
好网站
回复 支持 反对

使用道具 举报

1

主题

9451

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
28563
QQ
发表于 2014-12-25 21:00:30 | 显示全部楼层
长见识了
回复 支持 反对

使用道具 举报

2

主题

9251

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
27923
QQ
发表于 2014-12-25 20:49:34 | 显示全部楼层
大神啊!!!
回复 支持 反对

使用道具 举报

4

主题

9438

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
28358
QQ
发表于 2015-1-12 17:28:22 | 显示全部楼层
很不错
回复 支持 反对

使用道具 举报

2

主题

8720

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
26418
QQ
发表于 2015-1-12 14:20:24 | 显示全部楼层
说的非常好
回复 支持 反对

使用道具 举报

0

主题

9846

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
29652
QQ
发表于 2015-1-12 08:09:00 | 显示全部楼层
LZ真是人才
回复 支持 反对

使用道具 举报

5

主题

9999

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
30277
QQ
发表于 2015-1-12 10:02:34 | 显示全部楼层
既来之则回之,那就回复支持楼主吧!
回复 支持 反对

使用道具 举报

江油论坛| 点击这里给我发消息

快速回复 返回顶部 返回列表