状态

看起来不复杂的网站,淘宝腾讯为何要大量顶尖高手来开发 2017-4-3 17:21:46 发自江苏南京

本站群第一用户 微博 只看楼主 01126

融合站点 - 私人主页 - 专栏文集 - 监督评点 - 我的信箱

看起来不复杂的网站,淘宝腾讯为何要大量顶尖高手来开发

阿里巴巴员工2万,百度技术人员超过6000,京东也有三四千攻城狮。

  子柳:就拿淘宝来说说,当作给新人一些科普。先说你看到的页面上,最重要的几个:

  【搜索商品】这个功能,如果你有几千条商品,完全可以用select*fromtableXXwheretitlelike%XX%这样的操作来搞定。但是——当你有10000000000(一百亿)条商品的时候,任何一个数据库都无法存放了,请问你怎么搜索?这里需要用到分布式的数据存储方案,关注公众号:程序员大咖,另外这个搜索也不可能直接从数据库里来取数据,必然要用到搜索引擎(简单来说搜索引擎更快)。好,能搜出商品了,是否大功告成可以啵一个了呢?早着呢,谁家的商品出现在第一页?这里需要用到巨复杂的排序算法。要是再根据你的购买行为做一些个性化的推荐——这够一帮牛叉的算法工程师奋斗终生了。

  【商品详情】就是搜索完毕,看到你感兴趣的,点击查看商品的页面,这个页面有商品的属性、详细描述、评价、卖家信息等等,这个页面的每天展示次数在30亿以上,同样的道理,如果你做一个网站每天有10个人访问,你丝毫感觉不到服务器的压力,但是30亿,要解决的问题就多了去了。首先,这些请求不能直接压到数据库上,任何单机或分布式的数据库,承受30亿每天的压力,都将崩溃到完全没有幸福感,这种情况下要用到的技术就是大规模的分布式缓存,所有的卖家信息、评价信息、商品描述都是从缓存里面来取到的,甚至更加极致的一点“商品的浏览量”这个信息,每打开页面一次都要刷新,你猜能够从缓存里面来取吗?淘宝做到了,整个商品的详情都在缓存里面。

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

  【广告系统】淘宝上有很多广告,什么,你不知道?那说明我们的广告做的还不错,居然很多人不认为它是广告,卖家怎么出价去买淘宝的广告位?广告怎么展示?怎么查看广告效果?这又是一套算法精奇的系统。

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

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

  不再多写了,除了上面提到的这些,还有很多很多需要做的技术,当然并不是这些东西有多么高不可攀,任何复杂的庞大的东西都是从小到大做起来的,里面需要牛叉到不行的大犇,也需要充满好奇心的菜鸟,最后这一句,你当我是别有用心好了。

  因为同一时刻访问的人数过于巨大,所以即便是生成淘宝首页页面的服务器,也不可能仅有一台。仅用于生成首页的服务器就可能有成百上千台,那么你的一次访问时生成页面给你看的任务便会被分配给其中一台服务器完成。这个过程要保证公正、公平、平均(暨这成百上千台服务器每台负担的用户数要差不多),这一很复杂的过程是由几个系统配合完成,其中最关键的便是LVS(LinuxVirtualServer),世界上最流行的负载均衡系统之一,正是由目前在淘宝网供职的章文嵩博士开发的。

  经过一系列复杂的逻辑运算和数据处理,用于这次给你看的淘宝网首页的HTML内容便生成成功了。对web前端稍微有点常识的童鞋都应该知道,下一步浏览器会去加载页面中用到的css、js、图片、脚本和资源文件。但是可能相对较少的同学才会知道,你的浏览器在同一个域名下并发加载的资源数量是有限制的,例如IE6-7是两个,IE8是6个,Chrome各版本不大一样,一般是4-6个。我刚刚看了一下,我访问淘宝网首页需要加载126个资源,那么如此小的并发连接数自然会加载很久。所以前端开发人员往往会将上述这些资源文件分布在好多个域名下,变相的绕过浏览器的这个限制,同时也为下文的CDN工作做准备。

  据不可靠消息,在双十一当天高峰,淘宝的访问流量最巅峰达到871GB/S。这个数字意味着需要178万个4Mb带宽的家庭宽带才能负担的起,也完全有能力拖垮一个中小城市的全部互联网带宽。那么显然,这些访问流量不可能集中在一起。并且大家都知道,不同地区不同网络(电信、联通等)之间互访会非常缓慢,但是你却发现很少发现淘宝网访问缓慢。这便是CDN(ContentDeliveryNetwork),即内容分发网络的作用。淘宝在全国各地建立了数十上百个CDN节点,利用一些手段保证你访问的(这里主要指js、css、图片等)地方是离你最近的CDN节点,这样便保证了大流量分散在各地访问的加速节点上。

  这便出现了一个问题,那就是假若一个卖家发布了一个新的宝贝,上传了几张新的宝贝图片,那么淘宝网如何保证全国各地的CDN节点中都会同步的存在这几张图片供用户使用呢?这里边就涉及到了大量的内容分发与同步的相关技术。淘宝开发了分布式文件系统TFS(TaobaoFileSystem)来处理这类问题。

  好了,这时你终于加载完了淘宝首页,那么你习惯性的在首页搜索框中输入了‘毛衣’二字并敲回车,这时你又产生了一个PV,然后,淘宝网的主搜索系统便开始为你服务了。它首先对你输入的内容基于一个分词库进行分词操作。众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子Iamastudent,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我是一个学生。

  进行分词之后,还需要根据你输入的搜索词进行你的购物意图分析。用户进行搜索时常常有如下几类意图:

  (1)浏览型:没有明确的购物对象和意图,边看边买,用户比较随意和感性。Query例如:“2016年10大香水排行”,“2016年流行毛衣”,“zippo有多少种类?”;

  (2)查询型:有一定的购物意图,体现在对属性的要求上。Query例如:“适合老人用的手机”,“500元手表”;

  (3)对比型:已经缩小了购物意图,具体到了某几个产品。Query例如:“诺基亚E71E63″,”akgk450px200″;

  (4)确定型:已经做了基本决定,重点考察某个对象。Query例如:“诺基亚N97″,”IBMT60″。通过对你的购物意图的分析,主搜索会呈现出完全不同的结果来。

  之后的数个步骤后,主搜索系统便根据上述以及更多复杂的条件列出了搜索结果,这一切是由一千多台搜索服务器完成。然后你开始逐一点击浏览搜索出的宝贝。你开始查看宝贝详情页面。经常网购的亲们会发现,当你买过了一个宝贝之后,即便是商家多次修改了宝贝详情页,你仍然能够通过‘已买到的宝贝’查看当时的快照。这是为了防止商家对在商品详情中承诺过的东西赖账不认。那么显然,对于每年数十上百亿比交易的商品详情快照进行保存和快速调用不是一个简单的事情。这其中又涉及到数套系统的共同协作,其中较为重要的是Tair,淘宝自行研发的分布式KV存储方案。

  然后无论你是否真正进行了交易,你的这些访问行为便忠实的被系统记录下来,用于后续的业务逻辑和数据分析。这些记录中访问日志记录便是最重要的记录之一,但是前边我们得知,这些访问是分布在各个地区很多不同的服务器上的,并且由于用户众多,这些日志记录都非常庞大,达到TB级别非常正常。那么为了快速及时传输同步这些日志数据,淘宝研发了TimeTunnel,用于进行实时的数据传输,交给后端系统进行计算报表等操作。

  你的浏览数据、交易数据以及其它很多很多的数据记录均会被保留下来。

  使得淘宝存储的历史数据轻而易举的便达到了十数甚至更多个PB(1PB=1024TB=1048576GB)。如此巨大的数据量经过淘宝系统1:120的极限压缩存储在淘宝的数据仓库中。并且通过一个叫做云梯的,由2000多台服务器组成的超大规模数据系统不断的进行分析和挖掘。

  从这些数据中淘宝能够知道小到你是谁,你喜欢什么,你的孩子几岁了,你是否在谈恋爱,喜欢玩魔兽世界的人喜欢什么样的饮料等,大到各行各业的零售情况、各类商品的兴衰消亡等等海量的信息。

  说了这么多,其实也只是叙述了淘宝上正在运行的成千上万个系统中的寥寥几个。即便是你仅仅访问一次淘宝的首页,所涉及到的技术和系统规模都是你完全无法想象的,是淘宝2000多名顶级的工程师们的心血结晶,其中甚至包括长江学者、国家科学技术最高奖得主等众多大牛。同样,百度、腾讯等的业务系统也绝不比淘宝简单。你需要知道的是,你每天使用的互联网产品,看似简单易用,背后却凝聚着难以想象的智慧与劳动。(来源:IT那些事)

手机摇一摇,自动推荐下一篇帖子
为您提供签名参考示例,引导用户事业迈向成功。长度限256字符以内



相关主题:

融合站点 开启/闭合版块帖文详细列表
  • 综合站点
  • 专题特色
  • 公益站点
  • 党政机关
  • 团体单位
  • 营业机构
  • 企业集团
  • 商家店铺
  • 个体执业
  • 个人站点
  • 私人主页
  • 辅助节点
  • 资讯摘要 开启/闭合版块帖文详细列表
  • 媒体摘要
  • 时事热点
  • 观察瞭望
  • 潮声愿景
  • 世界国际
  • 军事战略
  • 交往合作
  • 政策政务
  • 经济产业
  • 社会发展
  • 科学技术
  • 综合资讯
  • 宣传报道 开启/闭合版块帖文详细列表
  • 部门建设
  • 区域振兴
  • 民主法制
  • 时代精神
  • 时代风采
  • 时代人物
  • 理论实践
  • 改革创新
  • 基层民生
  • 公益慈善
  • 志愿行动
  • 本纪列传
  • 政风行风 开启/闭合版块帖文详细列表
  • 作风建设
  • 效能评议
  • 纠风整风
  • 揭露曝光
  • 时风聚焦
  • 风气时评
  • 监督检查
  • 提醒警示
  • 纪检监察
  • 反腐问责
  • 风范表率
  • 案例借鉴
  • 综合分区 开启/闭合版块帖文详细列表
  • 综合论坛
  • 时代参考
  • 时代博览
  • 历史大观
  • 学习园地
  • 学术论文
  • 问题研讨
  • 信息公开
  • 文学作品
  • 故事传说
  • 照片图片
  • 视频短剧
  • 专题专栏 开启/闭合版块帖文详细列表
  • 潮流时尚
  • 名品名牌
  • 大众生活
  • 兴趣爱好
  • 创业就业
  • 协作共生
  • 拉抬推广
  • 打压限制
  • 会展节庆
  • 特殊主题
  • 自媒专栏
  • 专题集锦
  • 地方论坛 开启/闭合版块帖文详细列表
  • 北京论坛
  • 天津论坛
  • 河北论坛
  • 山西论坛
  • 内蒙论坛
  • 辽宁论坛
  • 吉林论坛
  • 龙江论坛
  • 上海论坛
  • 江苏论坛
  • 浙江论坛
  • 安徽论坛
  • 福建论坛
  • 江西论坛
  • 山东论坛
  • 河南论坛
  • 湖北论坛
  • 湖南论坛
  • 广东论坛
  • 广西论坛
  • 海南论坛
  • 重庆论坛
  • 四川论坛
  • 贵州论坛
  • 云南论坛
  • 西藏论坛
  • 陕西论坛
  • 甘肃论坛
  • 青海论坛
  • 宁夏论坛
  • 新疆论坛
  • 台湾论坛
  • 香港论坛
  • 澳门论坛
  • 泛亚论坛
  • 欧洲论坛
  • 非洲论坛
  • 北美论坛
  • 南美论坛
  • 大洋论坛
  • 行业论坛 开启/闭合版块帖文详细列表
  • 居民服务
  • 医药卫生
  • 餐饮住宿
  • 金融财税
  • 交通运输
  • 教育培训
  • 人力资源
  • 休闲娱乐
  • 租赁拍卖
  • 批发零售
  • 商务服务
  • 顾问咨询
  • 软件信息
  • 手工零活
  • 纺织服装
  • 鞋帽箱包
  • 珠宝配饰
  • 手机数码
  • 家电办公
  • 家居日用
  • 美妆养护
  • 母婴玩具
  • 轻工食品
  • 体育旅游
  • 家装建材
  • 房屋地产
  • 农林牧渔
  • 文艺文创
  • 媒体出版
  • 五金交化
  • 电子电气
  • 机械设备
  • 车辆船舶
  • 军工航天
  • 能源化工
  • 冶金矿产
  • 安防环保
  • 工程项目
  • 公共管理
  • 行业其他
  • 时代版务 开启/闭合版块帖文详细列表
  • 在线发稿
  • 版务规则
  • 共商网是
  • 公告通报