`
mizhihua
  • 浏览: 52324 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

从个人网站到淘宝网 仰观Java时代淘宝的技术发展(2)

 
阅读更多

个人网站

2003年4月7日,马云,在杭州,成立了一个神秘的组织。他叫来十位员工,要他们签了一份协议,这份协议要求他们立刻离开阿里巴巴,去做一个神秘 的项目。这个项目要求绝对保密,老马戏称“连说梦话被老婆听到都不行,谁要是透漏出去,我将追杀到天涯海角”。这份协议是英文版的,匆忙之间,大多数人根 本来不及看懂,但出于对老马的信任,都卷起铺盖离开了阿里巴巴。

他们去了一个神秘的据点——湖畔花园小区的一套未装修的房子里,房子的主人是马云。这伙人刚进去的时候,马云给他们布置了一个任务,就是在最短的时 间内做出一个个人对个人(C2C)的商品交易的网站。现在出一个问题考考读者,看你适不适合做淘宝的创业团队。亲,要是让你来做,你怎么做?

在说出这个答案之前,容我先卖个关子,介绍一下这个创业团队的成员:三个开发工程师(虚竹、三丰、多隆)、一个UED(二当家)、三个运营(小宝、 阿珂、破天)、一个经理(财神)、还有就是马云和他的秘书。当时对整个项目组来说压力最大的就是时间,怎么在最短的时间内把一个从来就没有的网站从零开始 建立起来?了解淘宝历史的人知道淘宝是在2003年5月10日上线的,这之间只有一个月。要是你在这个团队里,你怎么做?我们的答案就是:买一个来。

买一个网站显然比做一个网站要省事一些,但是他们的梦想可不是做一个小网站而已,要做大,就不是随便买个就行的,要有比较低的维护成本,要能够方便 的扩展和二次开发。那接下来就是第二个问题:买一个什么样的网站?答案是:轻量一点的,简单一点的,于是买了这样一个架构的网 站:LAMP(linux+apache+mySQL+PHP)。这个直到现在还是一个很常用的网站架构模型。这种架构的优点是:无需编译,发布快 速,PHP功能强大,能做从页面渲染到数据访问所有的事情,而且用到的技术都是开源的,免费。

当时我们是从一个美国人那里买来的一个网站系统,这个系统的名字叫做PHPAuction(他们的官方网站 http://www.phpauction.net 这个名字很直白,一眼就看出来这个系统是用什么语言做的、是干什么用的),PHPAuction有好几个版本,我们买的是最高版的,功能比较多,而且最重 要的是对方提供了源代码。最高版比较贵,花了我们2000美金(貌似现在降价了,只要946美元)。买来之后不是直接就能用的,需要很多本地化的修改,例 如页面模板改的漂亮一点,页头页脚加上自己的站点简介等,其中最有技术含量的是对数据库进行了一个修改。原来是从一个数据库进行所有的读写操作,拿过来之 后多隆把它给拆分成一个主库、两个从库,读写分离。这么做的好处有几点:存储容量增加了,有了备份,使得安全性增加了,读写分离使得读写效率提升了。这样 整个系统的架构就如下图所示:

其中pear DB是一个PHP模块,负责数据访问层。另外也用开源的论坛系统PHPBB( http://www.phpbbchina.com )搭建了一个小的论坛社区,虚竹负责机器采购、配置、架设等,三丰和多隆负责编码,他们把交易系统和论坛系统的用户信息打通,给运营人员开发出后台管理 (admin系统)的功能,把交易类型从只有拍卖这一种增加为拍卖、一口价、求购商品、海报商品(意思是还没推出的商品,先挂个海报出来)这四种。 (PHPAuction只有拍卖的交易,Auction即拍卖的意思。@_行癫在微博中提到:今天eBay所有交易中拍卖交易仍然占了40%,而在中国, 此种模式在淘宝几乎从一开始就未能占据优势,如今在主流的交易中几乎可以忽略不计。背后的原因一直令人费解。我大致可以给出其中一种解释,eBay基本在 发达国家展开业务,制造业外包后,电子商务的基本群体大多只能表现为零散的个体间交易。)

在经历了另外一些有趣的事情之后(这些有趣的事情包括“淘宝”这个名字的由来,员工花名的由来等等,由于本书主要描述技术方面的故事,对这些有兴趣的可以去网上找),网站开始上线运行了。

在接下来的大半年时间里,这个网站迅速显示出了它的生机。这里有必要提一下当时的市场环境,非典(SARS)的肆虐使得大家都不敢出门,尤其是去商 场之类人多的地方。另外在神州大地上最早出现的C2C网站易趣也正忙的不亦乐乎,2002年3月,eBay以3000万美元收购了易趣公司33%的股 份,2003年6月以1.5亿美元收购了易趣公司剩余67%的股份。当时淘宝网允许买卖双方留下联系方式,允许同城交易,整个操作过程简单轻松。而 eBay为了收取交易佣金,是禁止这么做的,这必然增加了交易过程的难度。而且eBay为了全球统一,把易趣原来的系统替换成了美国eBay的系统,用户 体验一下子全变了,操作起来非常麻烦,这等于是把积累的用户拱手送给了淘宝。为了不引起eBay的注意,淘宝网在2003年里一直声称自己是一个“个人网 站”。由于这个创业团队强大的市场开拓和运营能力,淘宝网发展的非常迅猛,2003年底就吸引了注册用户XXX,最高每日31万PV,从5月到年底成交额 4000万。这没有引起eBay的注意,却引起了阿里巴巴内部很多员工的注意,他们觉得这个网站以后会成为阿里巴巴强劲的对手。甚至有人在内网发帖,忠告 管理层要警惕这个刚刚起步的网站,但管理层似乎无动于衷。(这个团队的保密工作做的真好)

在市场和运营的后方,淘宝网的技术团队也在快速的做着系统的改进和创新。这里还有个有趣的故事,eBay和易趣早期都有员工在论坛上响应用户的需 求,eBay的论坛用粉红色背景来区分员工的发言,易趣的员工在论坛上昵称都选各种豆豆,例如黄豆豆、蚕豆豆等。淘宝在讨论运营策略的时候提到这个问题, 要求所有的员工都去论坛上回答用户的问题。最早回答问题的任务落在小宝头上,那我们用什么名字好呢?“淘淘”?“宝宝”?小宝都不满意,太女性化了。讨论 了很久之后,小宝灵光乍现,干脆取个名字叫“小宝”吧,小宝带七个老婆来开店,迎接各位客官,很有故事性。于是很多武侠小说中的人物开始在论坛中行侠仗 义,这些昵称下面标志着“淘宝店小二”,他们回答着各种各样的问题,快速响应着用户的各种需求。如果是技术上能解决的,几个人商量一下,马上就开发、测 试、发布上线。反过来对比一下,易趣被eBay收购之后,系统更换成了全球通用的版本,响应用户的一个需求需要层层审批,反应速度自然慢了下来。

当时淘宝第一个版本的系统里面已经包含了商品发布、管理、搜索、商品详情、出价购买、评价投诉、我的淘宝这些功能(现在主流程中也是这些模块。在 2003年10月增加了一个功能节点:“安全交易”,这个是支付宝的雏形)。随着用户需求和流量的不断增长,系统上面做了很多的日常改进,服务器由最初的 一台变成了三台,一台负责发送email、一台负责运行数据库、一台负责运行webApp。过一段时间之后,商品搜索的功能占用数据库资源太大了(用 like搜索的,很慢),又从阿里巴巴中文站搬过来他们的搜索引擎iSearch,起初iSearch索引的文件放在硬盘上,随着数据量的增长,又采购了 NetApp服务器放置iSearch。

如此快节奏的工作,其实大家都累得不行,有人就提议大家随时随地的锻炼身体,可是外面SARS横行,在一个一百多方的房子里,怎么锻炼呢?高挑美女 阿珂提议大家练习提臀操,这个建议遭到男士的一致反对,后来虚竹就教大家练习倒立,这个大家都能接受。于是这个倒立的传统一直延续至今,和花名文化、武侠 文化一并传承了下来。

随着访问量和数据量的飞速上涨,问题很快就出来了,第一个问题出现在数据库上。mySQL当时是第4版的,我们用的是默认的存储引擎myisam, 这种类型读数据的时候会把表锁住(我们知道Oracle在写数据的时候会有行锁,读数据的时候是没有的),尤其是主库往从库上面写数据的时候,会对主库产 生大量的读操作,使得主库性能急剧下降。这样在高访问量的时候,数据库撑不住了。另外当年的mySQL不比如今的mySQL,在数据的容量和安全性方面也 有很多先天的不足(和Oracle相比)。

分享到:
评论

相关推荐

    行业景气度研究系列报告之三:资源型行业,仰观俯察,链串周期-0414-光大证券-22页.pdf

    行业景气度研究系列报告之三:资源型行业,仰观俯察,链串周期-0414-光大证券-22页.pdf

    opencart教程二

    不错的opencart学习资源,国内少有

    opencart教程

    opencart教程

    google地图的url参数

    这篇文档主要用来详细的说明谷歌地图调用的各种参数

    哈尔滨工程大学833社会研究方法2020考研专业课初试大纲.pdf

    哈尔滨工程大学考研初试大纲

    基于ASP酒店房间预约系统(源代码+论文)【ASP】.zip

    基于ASP酒店房间预约系统(源代码+论文)【ASP】

    毕业设计基于机器学习的DDoS入侵检测python源码+设计文档.zip

    毕业设计基于机器学习的DDoS入侵检测python源码(高分项目).zip个人经导师指导并认可通过的高分毕业设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。

    NewNormal.txt

    NewNormal

    re2-0.2.14.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    哈尔滨工程大学《常微分方程》2020考研专业课复试大纲.pdf

    哈尔滨工程大学考研复试大纲

    grpcio-1.14.0-cp35-cp35m-macosx_10_7_intel.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    哈尔滨工程大学《化工原理》2020考研专业课复试大纲.pdf

    哈尔滨工程大学考研复试大纲

    基于 STM32 U575 芯片组

    头 microSWIFT V2 固件,基于 STM32 U575 芯片组。作为项目导入到STM32CubeIDE中

    bailando 网络 smpl pkl 数据+ blendershape csv数据集训练代码

    bailando 网络 smpl pkl 数据+ blendershape csv数据集训练代码

    cryptography-2.0-cp34-cp34m-manylinux1_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    Arthas测试使用-ThreadDeadLock代码

    Arthas测试使用

    re2-0.2.21.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于Java的基于流媒体的vod视频点播网(源码+论文+需求分析+数据库文件+演示视频).zip

    本系统最大的特点是使用操作简单、友好的提示信息。本系统将实现以下基本功能: (1) 系统具有简洁大方的页面,使用简便,友好的错误操作提示 (2) 管理员用户具有系统信息管理、班级信息管理、教师信息管理、学生信息管理、公告管理、留言管理、资料管理、点播视频管理等功能。 (3) 具有较强的安全性,避免用户的恶意操作 本基于Web技术的B/S结构的系统采用jsp技术进行开发设计,开发环境是MyEclipse,服务器采用tomcat,通过jdbc驱动和数据库进行无缝连接,具有较高的完整性,一致性和安全性。

    基于Python+PyQt5的网上书店管理系统源码+项目说明(含登录功能+课设报告).zip

    基于Python+PyQt5的网上书店管理系统源码+项目说明(含登录功能+课设报告).zip 基于Python+PyQt5的网上书店管理系统源码+项目说明(含登录功能+课设报告).zip 基于Python+PyQt5的网上书店管理系统源码+项目说明(含登录功能+课设报告).zip 【优质项目推荐】 1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 2.项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、项目初期立项演示等用途。 4.如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能。 基于Python+PyQt5的网上书店管理系统源码+项目说明(含登录功能+课设报告).zip 功能 - 智能检查:检查书店存在此图书以及电话号码是否合法 - 采用下拉框智能补全,通过出售书名来补全,作者信息栏,通过出售书名来补全出版社,以确保书名,作者,出版社一一对应;通过买方手机号来补全默认配送地址,配送地址可随改 - 智能提示:提示书名与电话号码填写问题 - 第二遍确认 ### 修改图书页 ![](https://gowi-picgo.oss-cn-shenzhen.aliyuncs.com/picgo/20200607204627.png) 功能: - 修改图书信息(按下修改,使其一行可以修改,其余行不可修改,且不同行按钮处于冻结状态,按下完成按钮修改内容同步至数据库) - 翻页 - 返回上一级 - 查询 ### 查看会员信息 ![](https://gowi-picgo.oss-cn-shenzhen.aliyuncs.com/picgo/20200607205033.png) 功能: - 不可编辑 - 分页 - 查询 - 返回主页 ### 查看购买记录 ![](https://gowi-picgo.oss-cn-shenzhen.aliyuncs.com/picgo/20200607205146.png) 功能 - 查询 - 分页 - 按时间排序 - 不可编辑

    华为OD机试(A卷+B卷+C卷+D卷)2024真题目录(全、新、准)

    2024版华为OD机试题库,包含C、D卷所有真题,粉丝可领取体验卡免费看题,包含面试手撕代码等等内容

Global site tag (gtag.js) - Google Analytics