淘宝复杂在哪里? 淘宝系的胜利

http://www.nowamagic.net/librarys/veda/detail/2347 淘宝帝国

双 11无疑是淘宝系(淘宝+天猫)的独舞。算法

阿里集团 11 月 12 日凌晨确认,11.11购物狂欢节的支付宝总销售额达到 191 亿元,是去年的三倍多,其中仅天猫就达成了 132 亿元,淘宝则完成了 59 亿元。数据库

  • 一个让人瞠目的结果:若是将百元大钞摞起来,191亿元可高达1.9万米,至关于世界最高建筑迪拜塔(828米)的 23 倍,用经常使用点钞机须要耗费 133 天。
  • 另外一个让人瞠目的结果则是:“光棍节”当日天猫涌入了2.13亿网民。

为了阻击天猫光棍节促销,竞争对手纷纷出击,京东推出了沙漠风暴行动,苏宁推出了“3天 3 夜超级 0 元购”,造成“围攻天猫”之势。天猫最终成为赢家,尽管京东、易购还没有公布结果,但 191 亿元如一座高峰,竞争对手只能仰望。缓存

从技术看淘宝

此次奇迹的背后,是淘宝成千上万顶尖工程师天天努力的结果,那么他们天天都在努力什么?淘宝的复杂在哪里?为何这么恐怖的访问量,淘宝仍是能撑得住?安全

先说你看到的页面上,最重要的几个:服务器

  1. 搜索商品

    这个功能,若是你有几千条商品,彻底能够用select * from tableXX where title like %XX%这样的操做来搞定。可是——当你有10,000,000,000(一百亿)条商品的时候,任何一个数据库都没法存放了,请问你怎么搜索?运维

    这里须要用到分布式的数据存储方案,另外这个搜索也不可能直接从数据库里来取数据,必然要用到搜索引擎(简单来讲搜索引擎更快)。好,能搜出商品了,是否大功告成能够啵一个了呢?早着呢,谁家的商品出如今第一页?这里须要用到巨复杂的排序算法。要是再根据你的购买行为作一些个性化的推荐——这够一帮牛叉的算法工程师奋斗终生了。分布式

  2. 商品详情

    就是搜索完毕,看到你感兴趣的,点击查看商品的页面,这个页面有商品的属性、详细描述、评价、卖家信息等等,这个页面的天天展现次数在30亿以上。一样的道理,若是你作一个网站天天有10我的访问,你丝毫感受不到服务器的压力,可是30亿,要解决的问题就多了去了。性能

    首先,这些请求不能直接压到数据库上,任何单机或分布式的数据库,承受30亿天天的压力,都将崩溃到彻底没有幸福感,这种状况下要用到的技术就是大规模的分布式缓存,全部的卖家信息、评价信息、商品描述都是从缓存里面来取到的,甚至更加极致的一点“商品的浏览量”这个信息,每打开页面一次都要刷新,你猜可以从缓存里面来取吗?淘宝作到了,整个商品的详情都在缓存里面。优化

  3. 商品图片

    一个商品有5个图片,商品描述里面有更多图片,你猜淘宝有多少张图片要存储?100亿以上。这么多图片要是在你的硬盘里面,你怎么去查找其中的一张?要是你的同窗想拷贝你的图片,你须要他准备多少块硬盘?你须要配置多少大的带宽?大家的网卡是否可以承受?你须要多长时间拷贝给他?这样的规模,很不幸市面上已经没有任何商业的解决方案,最终必须本身来开发一套存储系统,若是你据说过google的GFS,淘宝跟他相似,叫TFS。顺便说一下,腾讯也有这样的一套,也叫TFS。网站

  4. 广告系统

    淘宝上有不少广告,什么,你不知道?那说明淘宝的广告作的还不错,竟然不少人不认为它是广告,卖家怎么出价去买淘宝的广告位?广告怎么展现?怎么查看广告效果?这又是一套算法精奇的系统。

  5. BOSS系统

    淘宝的工做人员怎么去管理这么庞大的一个系统,例如某时刻忽然宣布某位做家的做品所有从淘宝消失,从数据库到搜索引擎到广告系统,里面的相关数据在几分钟内所有消失,这又须要一个牛叉的后台支撑系统。

  6. 运维体系

    支持这么庞大的一个网站,你猜须要多少台服务器?几千台?那是零头。这么多服务器,上面部署什么操做系统,操做系统的内核可否优化?Java虚拟机可否优化?通讯模块有没有榨取性能的空间?软件怎么部署上去?出了问题怎么回滚?你装过操做系统吧,优化过吧,被360坑过没,崩溃过没?这里面又有不少门道。

除了上面提到的这些,还有不少不少须要作的技术,好比网站安全等等,固然并非这些东西有多么遥不可及,任何复杂的庞大的东西都是从小到大作起来的,里面须要牛叉到不行的大犇,也须要充满好奇心的菜鸟。

当用户、数据和系统规模上到一个程度以后,全部曾经能够忽视的问题都会变得必须用历来不可想象的精力和技术去解决。问题规模大到必定级别,任何微小的改进都能带来巨大的回报。可是这样的改进每每不是那么容易作到,因此须要大量顶尖高手来开发。

若是有兴趣能够再读读这个:你在淘宝买件东西背后的复杂技术

相关文章
相关标签/搜索