《淘宝技术这十年》读书笔记 (一).淘宝网技术简介及来源

2023-10-29

        我似乎是2007年初中看《赢在中国》的时候喜欢上马云的,当时对电脑都不是很了解,更别提阿里巴巴和淘宝网了。但当时马云的几句点评还是深深地吸引了我,其中我印象最深的一句话就是“短暂的激情是不值钱的,只有长久的激情才是值钱的”,以至于我在本科毕业德育答辩时用的题目就是这句话(德育答辩开题我用的题目也是马云的《If not now,when? If not me,who?》其含义是如果不是现在努力,什么时候努力呢?如果不是为了自己奋斗,又是为谁奋斗呢?)。的确,想做成任何一件事都需要有持之以恒的努力;后来高中买了本书叫《谁认识马云》,作文中也经常用到他的例子作为论据,什么“今天很残酷,明天很残酷”。虽然我一直都喜欢马云,但也还没有达到那种盲目崇拜的地步,我更多的是喜欢他的那种做事的风格吧。而当今天的马云不断出现在聚光灯下之时,我也渐渐的更赞同还是需要脚踏实地的满怀激情的做自己喜欢的事情。
                                                                                               ——Eastmount序 
        最近时间很充实,实习也还没有找,非常的茫然,所以决定多看点书,写点读书笔记吧!第一篇读书笔记是《淘宝技术这十年》的第一部分读后感,记录一些有用的知识,同时通过这本书能介绍些学过的知识或面试中可能出现的题目,文章还是非常有趣的,希望对大家有所帮助!

一. 《你刚才在淘宝上买了一件东西》

        PS:首先讲述阿里员工卡特的文章《你刚才在淘宝上买了一件东西》。
        快要过年了,于是想给你的女朋友买一件毛衣,你打开了www.taobao.com。
        这时你的浏览器首先查询DNS服务器,将www.taobao.com转换成IP地址。
        不过你首先会发现,在不同的地区或不同的网络(电信、联通、移动)下,转换后的IP地址很可能是不一样的。这首先涉及到了负载均衡的第一步,通过DNS解析域名时,将你的访问分配到不同的入口,同时尽可能保证你所访问的入口是所有入口中可能较快的一个(这和后文的CDN不一样)。
        你通过这个入口成功地访问了www.taobao.com实际的入口IP地址,这是生了一个PVPage View,页面访问量。每日每个网站的总PV量是形容一个网站规模的重要指标。淘宝网全网在平日非促销期间的PV大概是16-25亿个之间)。同时作为一个独立的用户,你这次访问淘宝网的所有页面均算作一个UV(UniqueVisitor,用户访问)。
        因为同一时刻访问www.taobao.com的人数过于巨大,所以即便是生成淘宝首页页面的服务器,也不可能仅有一台,仅用于生成淘宝首页的服务器就可能有成百上千台,那么你的一次访问时生成页面给你看的任务便会分配给其中一台服务器完成。这个过程要保证公正、公平、平均(即这成百上千台服务器每台负担的用户数要差不多),这一很复杂的过程由几个系统配合完成,其中最关键的便是LVS(LinuxVirtual Server,世界上最流行的负载均衡系统之一)。
        经过一系列复杂的逻辑运算和数据处理,这次用于给你看的淘宝网首页的HTML内容便成功生成了。Web前端稍微有点常识的人都应该知道,浏览器下一步会加载页面中用到的CSSJSJavaScript)、图片等样式、脚本和资源文件。但是可能相对较少的人才会知道,你的浏览器在同一个域名下并发加载的资源数量是有限的,例如IE6和IE7是两个,IE8是6个,chrome个版本不同,一般是4-6个。我刚刚看了下,我访问淘宝首页需要加载126个资源,那么如此小的并发连接数自然会加载很久。
        所以前端开发人员往往会将上述这些资源文件分布在多个域名下,变相地绕过浏览器这个限制,同时也为下文的CDN工作做准备。
        据不可靠消息称,在2011年“双十一”当前高峰,淘宝的访问流量最巅峰达到871GB/s,这个数字意味着需要178万个4MB/s的家庭宽带才能负担得起,也完全有能力拖垮一个中小城市的全部互联网宽带。显然,这些访问浏览不可能集中在一起,并且不同地区、不同网络之间互访会非常缓慢,但是你却很少发现淘宝网访问缓慢,这便是CDNContentDelivery Network,即内容分发网络的作用)。淘宝在全国各地建立了数十个甚至上百个CDN节点,利用一些手段保证你访问的(这里主要指JS、CSS、图片等)站点是离你最近的CDN节点,这样便保证了大流量的分散以及在各地访问的加速。
        这便出现另一个问题,那就是假若一个卖家发布了一个新的宝贝,上传了几张新的宝贝图片,那么淘宝网如何保证全国各地的CDN节点中都会同步存在这几张图片共用户使用呢?
        这涉及大量的内容分发与同步的相关技术;另外,淘宝上拥有海量的宝贝图片等静态文件,这些文件的总容量也达到了数PB(1PB=1024TB),为了快速存取这些文件,淘宝开发了分布式文件系统TFSTaoBao File System)来处理这类问题。
        好了,此时你终于加载完成淘宝首页,然后习惯性地在首页搜索框中输入“毛衣”二字并按回车键,这时你又产生了一个PV,然后淘宝网的主搜索系统便开始为你服务,它首先对你输入的内容基于一个分词库进行分词操作。
        众所周知,英文是以词为单位的,词和词之间靠空格隔开,而中文是以字为单位,句子中所有的字连接起来才能描述一个意思。例如,英文句子“I am astudent”用中文表示则是“我是一个学生”。计算机可以很简单地通过空格知道student是一个单词,但是不太容易明白“学”、“生”两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。“我是一个学生”分词的结果是“我 是 一个 学生”。
        进行分词操作之后,还需要根据你输入的搜索词进行购物意图分析。用户进行搜索时常常有如下几类意图:
        1.浏览型:没有明确的购物对象和意图,边看变买,用户比较随意和感性。Query例如“2010年10大香水排行”、“2010年流行毛衣”、“zippo有多少种类?”
        2.查询型:有一定的购物意图,体现在对属性的要求上。Query例如:“适合老人用的手机”、“500元手表”
        3.对比型:已经缩小了购物意图,具体到某几个产品。例如:“诺基亚E71 E63”、“akg k450 px200”
        4.确定型:已经做了基本决定,重点考察某个对象。例如:“诺基亚N97”、“IBM T60”
        通过对你的购物意图的分析,主搜索会呈现出完全不同的结果。
        之后的数个步骤后,主搜索系统便会根据上述以及更多复杂的条件列出了搜索结果,这一切是由一千多台搜索服务器完成的。然后你开始逐一点击浏览搜索出的宝贝,查看宝贝详情页面。经常购物的亲们会发现,当你买过一个宝贝之后,即便商家多次修改宝贝详情页,你仍然能够通过“已买到的宝贝”查看当时的快照。这是为了防止商家对商品详情中承诺过的东西赖账不认。
        显然,对于每年数十亿甚至上百亿笔交易的商品详情快照进行保存和快速调用不是一件简单的事情。这其中又设计数套系统的共同协作,其中较为重要的是Tair(淘宝自行研发的分布式KV存储方案)。
        接下来,无论你是否真的进行了交易,你的这些访问行为都会如实地被系统记录下来,用于后续的业务逻辑和数据分析。这些记录中的访问日志记录便是最重要的记录之一,但是从前面我们得知,这些访问时分布在各个地区不同的服务器上的,并且由于用户众多,这些日志记录都非常庞大,达到TB级别也非常正常。
        那么,为了快速、及时、同步地传输这些日志数据,淘宝研发了TimeTunnel,用于进行实时的数据传输,然后交给后端系统进行计算报表等操作。
        你的浏览数据、交易数据以及其他很多数据记录均很被保留下来,使得淘宝存储的历史数据轻而易举地便达到了数十甚至更多个PB。如此巨大的数据量存储在阿里巴巴集团的数据仓库中,并且其中有些数据使用了压缩比高达1:120的极限存储技术。之后这些数据会通过一个叫做云梯的基于Hadoop的由3000多台服务器组成的超大规模数据系统,以及一个基于阿里巴巴集团自主研发的ODPS系统的数据系统,不断地进行分析和挖掘。
        淘宝从这些数据中能够知道小到你是谁,你喜欢什么,你的孩子几岁了,你是否在谈恋爱,喜欢玩魔兽世界的人喜欢什么样的饮料等,大到各行各业的零售情况、各类商品的兴衰等海量信息。
        说了这么多,其实也只是叙述了淘宝上正在运行的成千上万个系统中的寥寥几个。即便是你仅仅访问一次淘宝的首页,所涉及的技术和系统规模都是你完全无法想象的,是淘宝2000多名顶级的工程师们的心血结晶,其中甚至包括长江学者、国家科学技术最高奖得主等众多牛人。
        同样,百度、腾讯等的业务系统也绝不比淘宝简单。你需要知道的是,你每天使用的互联网产品看似简单易用,背后却凝聚着难以想象的智慧与龙洞。


        PS:从这篇文章中我看到了很多东西,包括网络DNS域名等,让我想到的是网络五层协议和一个题目”描述从中国北京传输到美国纽约的网络流程?“;同时也看到了网络访问量PV知识、Web前端技术、CND分发和资源分配;还有中文分词、LTP和一个电话面试题目”请描述搜索引擎的工作流程?“等知识。这是非常好的一篇技术文章描述淘宝网的。

二. 淘宝网的来源

        2003年4月7日,马云在杭州成立了一个神秘的组织。布置的任务是在最短的时间内做出一个个人对个人(C2C)的商品交易的网站。这里出一个问题考考大家,看你适不适合做淘宝的创业团队:亲,要是让你来做,你怎么做?
        在说出这个答案之前,先介绍这个创业团队的成员:三个开发工程师(虚竹、三丰、多隆)、一个UED工程师(二当家)、三个运营工程师(小宝、阿珂、破天)、一个经理(财神),以及马云和他的秘书。
        当时对整个项目压力最大的是时间,火云邪神先生说过“天下武功无坚不破,唯快不破”,同时当时eBay和易趣在资本方面打得不可开交。淘宝2003年5月10日上线,在这一个月时间怎么做呢?答案是“买一个来”。
        买了这样一个架构的网站LAMP(Linux+Apache+MySQL+PHP),这个知道现在还是一个很常用的网站架构模型,其优点是无须编译,发布快速,PHP语言功能强大,能做从页面渲染到数据访问所有的事情,而且用到的技术都是开源、免费的。
        当时我们从一个美国人那里买到的一个网站系统叫做PHPAuction(Auction即拍卖),对方提供了源代码。买来之后不是直接就能用,需要本地化修改,如修改数据类型,增加后台管理功能,页面模板修改,增加自己的网点简介。
        其中最有技术含量的是对数据库进行了一个修改,原来是从一个数据库进行所有的读写操作,现在把它拆分成一个主库、两个从库,并且读写分离。这么做的好处有几点:存储容量增加了,有了备份,使得安全性增加了,读写分离使得读写效率得以提升(写要比读更加消耗资源,分开后互不干扰)。整个系统的架构如下图所示:

        其中pear DB是一个PHP模块,负责数据访问层。另外他们也用开源的论坛系统PHPBB搭建了一个小的论坛社区,在当时论坛几乎是所有网站的标配。
        虚竹负责机器采购、配置、架设等,三丰和多隆负责编码,他们把交易系统和论坛系统的用户信息打通,给运营人员开发出后台管理的功能(Admin系统),把交易类型从只有拍卖这一种增加为拍卖、一口价、求购商品、海报商品四种。
        在开发过程中,这个项目的代号是BMW,因为二当家非常喜欢宝马,希望我们的网站像宝马一样漂亮、快速、安全,充满乐趣。在上线的时候需要给这个网站取个名字,为了不引起eBay的注意,这个名字需要撇开和阿里巴巴的关系,所以“阿里爷爷”、“阿里舅舅”之类的域名都是不能用的。美女阿珂提议名字“淘宝”。因为她家里人热爱收藏古董,经常去市场上淘宝,而她本人也非常热爱逛街,享受“淘”的乐趣,她觉得“淘宝”两字特别符合网站的定位(后来“支付宝”也是阿珂取得)。


        在非典时期大家都不敢出门,尤其是类似商场等人多的地方,同时神州大地上最早出现的C2C网站易趣也忙得不亦乐乎,后被eBay收购。当时淘宝网允许买卖双方留下联系方式,允许同城交易,整个操作过程简单轻松;而eBay是收费的,为了收取交易佣金,eBay禁止买卖双方这么做,增加了交易过程的难度。同时eBay为了全球统一,把易趣原来的系统替换成了美国eBay系统,用户体验全变了,操作起来非常麻烦丢失了很多用户。
       为了不引起eBay的注意,淘宝网在2003年里一直声称自己是一个“个人网站”,淘宝网发展非常迅猛,2003年年底就吸引了注册用户23万个,每日31万个PV,这没有引起eBay的注意,却引起了阿里巴巴内部很多员工的注意,他们觉得这个网站以后会成为阿里巴巴强劲的对手,甚至在内网发帖忠告管理层警惕,但管理层似乎却无动于衷。
       当时淘宝第一个版本的系统中已经包含了商品发布、管理、搜索、商品详情、出价购买、评价投诉、我的淘宝等功能(现在主流程中也是这些模块。在2003年10月增加了一个功能结点:“安全交易”,这是支付宝的雏形)。随着用户需求和流量的不断增加,系统做了很多日常改进,服务器最初的一台变成三台,一台负责发送Email、一台负责运行数据库、一台负责运行WebApp。
       一段时间之后,商品搜索的功能占用数据库资源太大了(用like搜索的,很慢),2003年7月,多隆又把阿里巴巴中文站的搜索引擎iSearch搬了过来。
       随着访问量和数据量的飞速上涨,问题很快就出来了,第一个问题出现在数据库上。MySQL当时是第4版的,我们用的是默认存储引擎MyISAM,这种存储引擎在写数据的时候会把表锁住。当时Master同步数据到Slave的时候,会引起Slave写,这样Slave的读操作都要等待。还有一点是会发生Slave上的主键冲突,经常会导致同步停止,这样你发布的一些东西命名已经成功了,但就是查询不到。另外,当年的MySQL不必如今的MySQL,在数据的容量和安全性方面也有很多先天不足(和Oracle相比)。



三. 支付宝和旺旺的出现

        讲到这里,顺便先辟个谣,网上有很多这样骗转发的励志段:“1998年,马化腾等一伙人凑了50万元创办了腾讯,没买房;1998年,史玉柱借了50万元搞脑白金,没买房;1999年,丁磊用50万元创办了163.com,没买房;1999年,陈天桥炒股赚了50万元,创办盛大,没买房;1999年,马云等18人凑了50万元注册阿里巴巴,没买房。如果当年他们用这50万元买了房,现在估计还在还着银行的贷款吧。”
        事实上,阿里巴巴和淘宝网都是在马云自己的房子里创办的,阿里巴巴是1999年初发布上线的。所以关于马云买房的事情真相是这样的。
        淘宝网作为个人网站发展的时间并不长,由于它太引人注目了,马云在2003年7月就宣布这个是阿里巴巴旗下的网站,随后在市场上展开了很成功的推广运作。最著名的就是利用中小网站来做广告,突围eBay在门户网站上对淘宝的广告封锁。eBay买断了新浪、搜狐、网易等电子商务类型的广告,签署了排他性协议,切断淘宝在这上面做广告的路子。网站中经常见到的那些右下脚的弹窗和网站腰封上一闪一闪的广告。市场部那位到处花钱买广告的家伙太能花钱了,一出手就是几百万元,被称为“大少爷”。
        带来的是迅速上涨的流量和交易量。在2003年年底,MySQL已经支撑不住了,技术的替代方案非常简单,换成Oracle。原因除了它容量大、稳定、安全、性能高之外,还有人才方面的原因。
        在2003年阿里巴巴已经有一支很强大的DBA团队了,有鲁国良、冯春培、汪海(七公)这样的人物,还有冯大辉、陈吉平(拖雷)。这样的任务牛到什么程度呢?Oracle给全球的技术专家颁发头衔最高级别是ACE(就是扑克牌的“尖儿”),被授予这个头衔的人目前全球只有300多名,当年全球只有十几名,而阿里巴巴就有4名(阿里巴巴的首席数据库管理员(DBA)冯春培为甲骨文全球第100ACE)。有如此强大的技术后盾,把MySQL换成Oracle是顺理成章的事情。
        但更换数据库不是只换个库就可以的,其访问方式和SQL语法都要跟着变,最重要的是Oracle的性能和并发访问能力之所以强大有一个关键性的设计——连接池,连接池中方的是长连接,是进程级别的,在创建进程的时候,它就要独占一部分内存空间。
        也就是说,这些连接数在固定内存的OracleServer上是有限的,任何一个请求只需要从连接池中取得一个连接即可,用完后释放,这不需要频繁地创建和断开连接,而连接的创建和断开的开销是非常大的。但对于PHP语言来说,它对数据库的访问都是很直接的,每一个请求都要一个连接。如果是长连接,应用服务器增多时,连接数就多,就会把数据库拖挂;如果是短连接,频繁地连接后再断开,性能会非常差。那如何是好呢?
        多隆在网上找到一个开源的连接池代理服务SQL Relay,网址如下:
        http://sqlrelay.sourceforge.net
        多隆对这个能够提供连接池功能的东西进行了改进,系统的架构变成了如下形式:

        数据开始是放在本地的,七公带领的DBA们对Oracle做调优的工作,也对SQL进行调优。后来数据量变大后,本地存储无法满足了,买了NetApp 公司的NAS(NetworkAttached Storage,网络附属存储)作为数据库的存储设备,加上Oracle RAC来实现负载均衡。后来数据量变大,变成了购买小型机的道路。
        替完数据库后,在2004年春天他们在把数据的连接放在SQL Relay之后就噩梦不断,这个代理服务经常会死锁,如之前的MySQL死锁一样。虽然多隆做了很多修改,但当时那个版本内部处理的逻辑不对,问题很多,最快的解决办法就是“重启”它的服务。这在白天还好,只要连接上机房的服务器,把进程杀掉,然后开启就可以了;但是最痛苦的是它在晚上也要死掉,于是工程师需要24小时开机,一旦收到“SQL Relay进程挂起”的短信,就会重启。做这事最多的据说是三丰,他现在是淘宝网的总裁。现在我们知道,任何牛B的人物,都有一段苦B的经历。
        微博上有人说“好的架构是进化来的,不是设计来的”。的确如此,在架构的进化过程中,业务的进化也非常迅猛。最早买家打钱给卖家都是通过银行转账汇款,有些骗子收了钱却不发货甚至逃之夭夭。这是一个很严重的问题,淘宝网这伙人开始研究防骗子的解决方案,他们看了PayPal的支付方式,发现不能解决问题。研究了类似QQ币的东西,想弄出个“淘宝币”出来,发现也不行。后来几个聪明的想法黏合起来,想到了“担保交易”这种第三方托管资金的办法。于是淘宝网上线了一个功能“安全交易”,卖家如果选择支持这种功能,买家就会把钱交给淘宝网,等他收到货后淘宝网再把钱给卖家,这就是现在的“支付宝”。
        有人说淘宝打败易趣(eBay中国)是靠免费,其实这只是原因之一。如果说和易趣过招的第一招是免费,让用户无须成本就能进来,那么第二招就是“安全支付”,这让用户放心付款,不必担心被骗。而淘宝的第三招就是“旺旺”,淘宝旺旺是从阿里巴巴的“贸易通”复制过来砍价的。
        SQL Relay的问题搞得三丰等人很难睡个好觉,不能总这样通过不断地重启保证系统的稳定性。于是,2004年上半年开始,整个网站就开始了一个脱胎换骨的手术。下一篇文章将介绍第二部分,关于Java时代和创造技术。

        PS:最后还是希望文章对大家有所帮助,虽然文章中出现的很多涉及淘宝网的专业词汇我也不知道其技术是什么,但是还是能从《淘宝技术这十年 著:子柳》书中学到一些有用的知识。我主要是记录了其中自己认为比较好的文字复述出来,希望大家购买正版书籍阅读学习。
        (By:Eastmount 2015-4-20 夜5点   http://blog.csdn.net/eastmount/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《淘宝技术这十年》读书笔记 (一).淘宝网技术简介及来源 的相关文章

  • VQGAN(Vector Quantized Generative Adversarial Network)模型简介

    论文 Taming Transformers for High Resolution Image Synthesis VQGAN Vector Quantized Generative Adversarial Network 是一种基于 G
  • 使用CDN有什么好处?

    现如今 在这个移动互联网时代 越来越多的人使用手机观看视频 丰富自己的娱乐生活 可是 大家在追剧的时候 有没有想过一个问题 为什么以前观看视频时 那么卡顿 现在看视频却这么流畅呢 其实 这是互联网视频内容提供商使用了摩杜云CDN 解决巨大流
  • 达芬奇传

    列奥纳多 迪 皮耶罗 达 芬奇 出生于1452年 1519年逝世 享年67岁 画家 发明家 科学家 生物学家 工程师 达 芬奇的意思是 来自芬奇镇 他的名字叫做列奥纳多 达 芬奇的父亲叫瑟 皮耶罗 达 芬奇 是佛罗伦萨的法律公证员 因此十分
  • 大话数据结构读书笔记 1---线性表

    大话数据结构读书笔记 编程基础 数据结构 算法 1 线性表 顺序储存结构的结构代码 define MAXSIZE 20 储存空间的起始分配量 typedef int ElemType ElemType类型根据实际类型而定 这里假设是int
  • asp.net mvc 5 - StyleBundle CdnFallbackExpression 问题?

    我已通过 StyleBundle 将引导 CSS 文件添加到我的 asp net mvc 5 项目中 它用作 Cdn https www asp net ajax cdn Bootstrap Releases on the CDN 14 v
  • Bootstrap 3 Glyphicons CDN

    注意 Bootstrap 图标又回来了 after 这个拉取请求合并 经过过去几周的反复思考 我决定将 Glyphicons 图标字体恢复到主存储库 考虑到图标在 UI 中的流行程度 如果不将它们 或其他一些图标字体 包含在与 CSS 和
  • 来自 CDN 的 SVG

    我正在使用
  • Google CDN 未对 jquery 进行 gzip 压缩

    如果我导航到这里 http ajax googleapis com ajax libs jquery 1 4 jquery min js 我使用 Firefox 3 6 3 下载了 70k 我可以确认它正在发送 Accept Encodin
  • AWS-WAF-CDN基于速率rate的永久黑名单方案(基于lambda实现)

    参考方案 有坑 所以产生了这篇博客 点击跳转 1 部署waf 有则跳过 必须存在一个rate速率规则 后面的方案堆栈要用 新建rate速率规则 关联cdn资源 2 部署堆栈 美国东部 弗吉尼亚北部 us east 1 1 堆栈文件获取方式
  • 测量外部 CDN 资源的访问者 HTTP 缓存命中率

    我的网站使用几种常见的 CDN 托管资源 例如bootstrap css jquery js and fontawesome css 是否可以通过 JavaScript 获取信息 我的网站访问者在其 Web 浏览器中是否有这些资源的热缓存
  • 无法在 CDN 上加载资源:net::ERR_CONNECTION_RESET

    最近 在我正在开发的网站上 我注意到 Chrome 控制台中出现以下错误 无法加载资源 net ERR CONNECTION RESEThttp maxcdn bootstrapcdn com font awesome 4 4 0 css
  • 我可以使用 CDN 中的 ES 模块库吗?

    我想通过 CDN 使用这个库 https www jsdelivr com package npm lit element https www jsdelivr com package npm lit element 我的js代码在这里 i
  • 从 CDN 包中删除 Babel(StandAlone) 警告消息

    我们在项目的某些部分使用 React JS CDN 出于质量目的 我们希望向客户提供无警告的代码 我们正在使用以下库 问题是我们在控制台中收到以下警告消息 您
  • 需要帮助了解 Firebase Storage CDN

    我正在构建一个有声读物应用程序 并将音频文件上传到 Firebase 存储上 我的问题是我在旧金山和多伦多经历了不同的表现 我的印象是 Firebase Storage 具有内置 CDN 如果是这样 我需要在某处启用它吗 如果没有 如何将
  • Google 应用引擎和 CDN

    使用 Google 应用引擎时 如果我希望我的文件资源更接近用户 那么使用 CDN 有什么好处吗 嗯 这完全取决于您的预算 地理位置和概况 Google 应用程序引擎是免费的 如果配置正确 它可以很好地向世界各地的不同地点提供您的内容 很多
  • django图像存储cdn

    过去几个月我一直在使用rackspace CDN 以及 django imagekit 和 django cumulus 我对结果并不满意 由于超时等原因 我似乎收到了很多错误 File www django test1 omu2 src
  • 如何防止在 Cloudflare 上暴露源 IP 地址?

    在 Cloudflare DNS 设置页面上 它指出An A AAAA CNAME or MX record is pointed to your origin server exposing your origin IP address
  • 使用 RequireJS 时如何从 CDN 加载第三方 JavaScript?

    我一直在使用 RequireJS 进行依赖管理 并且必须说我喜欢它 JavaScript 最近确实已经成熟了 然而 我无法弄清楚的一件事是 当使用优化器将所有 JavaScript 模块捆绑到一个文件中时 如何才能继续从外部 CDN URL
  • 加载 DOM 后如何运行 jQuery 的后备副本?

    以下是a中的第一行代码
  • CSS 中的图像路径支持 CDN

    我正在尝试将我们的图像部署到 CDN 目前 CSS 具有我们网站上图像的相对路径 这些路径需要支持 CDN 图像位置 有人对我如何做到这一点有建议吗 或者是否有人有关于部署到 CDN 的好教程 这就是我最终完成此任务的方式 我用SASS h

随机推荐

  • 行人检测(一)python+OpenCV实现

    文章目录 一 需求与准备 二 原理 三 代码实现 1 导入库 2 初始化行人检测器 3 读取视频并检测 四 检测效果 总结 一 需求与准备 做一个特定场景的视频监控 当有人进入指定区域时报警 1 实现检测人 2 实现设置任意指定检测区域 3
  • 当你第一次学习ProtoBuf时,这是你需要知道的一切

    入门ProtoBuf 从零开始的序列化与反序列化 文章目录 入门ProtoBuf 从零开始的序列化与反序列化 0 简介 1 安装 2 简单入门 3 进阶 关键字 分配标识号 字段类型 protoc的常用命令 枚举类型 消息嵌套 map类型
  • 完全二叉树

    1 什么是完全二叉树 对于一颗具有N个节点的二叉树按层序编号 如果编号I的节点与同样深度的满二叉树中编号为I的节点在二叉树中位置完全相同 则这棵树被称为完全二叉树 另一种定义 完全二叉树是由满二叉树而引出来的 若设二叉树的深度为h 除第 h
  • 数据结构-查找篇

    数据结构 查找篇 内容 思维导图 基于教材 错题复盘 计算题 基于习题解析 1 思维导图 2 错题复盘 计算题 1 对n个元素的表进行顺序查找时 若查找每个元素的概率相同 则平均查找长度为 C A n 1 2 B n 2 C n 1 2 D
  • 超市订单管理系统

    源码及论文 源码及论文下载 http www byamd xyz tag java 1 系统需求分析 超市订单管理系统是一个专为连锁店 超市等商业场所提供订单管理平台的系统 该系统的目标是建立一个订单管理平台 为需要合理规划超市供应链 供应
  • discard long time none received connection错误解决

    discard long time none received connection错误解决 1 报错信息 用druid 数据库链接 日志中一直在报 Error 内容是 discard long time none received con
  • 安卓权限记录

  • vue跨域下载img的src图片

    这里以下载img的src图片为例 首先增加需要跨域下载的接口 export const getImage url gt return axios method get url loadImg url responseType blob 这里
  • org.mybatis.spring.SqlSessionFactoryBean 报红

    这种情况说明pom xml下缺少依赖
  • 数据提取的概念和数据的分类

    1 什么是数据提取 简单的来说 数据提取就是从响应中获取我们想要的数据的过程 2 爬虫中数据的分类 结构化数据 json xml等 处理方式 直接转化为python类型 非结构化数据 HTML 处理方式 正则表达式 xpath 下面以今日头
  • 【KITTI数据集Odometry序列00-10标定文件中的参数关系解读】

    KITTI数据集Odometry序列00 10标定文件中的参数关系解读 KITTI数据集Odometry序列00 10标定文件中的参数关系解读 一 下载完整的里程计calib文件 二 calib txt文件内容解读 三 真值pose文件解读
  • Isight调用Recurdyn

    在项目中遇到isght调用recurdyn的问题 现在进行说明 RecurDyn部分 recurdyn中需要设置输入和输出 即isight给recurdyn输入的变量 recurdyn返回给isght的变量 step1 RecurDyn模型
  • PROFINET非周期数据通信详解

    PROFINET非周期数据通信详解 zhouhongkun7的博客 CSDN博客
  • 基本数据类型、运算符与表达式

    第三章基本数据类型 运算符与表达式 3 1 C语言的数据类型 在C程序中使用的每一个数据都属于唯一的一种数据类型 没有无类型的数据 一个数据也不能同属于多种数据类型 3 1 1 C语言的数据类型可分为四大类 基本类型 不可再分解为其他类型
  • 【QT】翻金币项目(QT综合案例)

    目录 1 项目简介 2 程序框架 3 程序代码 3 1 项目工程配置文件 CoinFlip pro 3 2 界面文件 mainscene ui 和 res qrc 资源添加 3 3 自定义按钮类 mypushbutton h 和 mypus
  • Selenium Web 自动化 - 项目实战(一)

    Selenium Web 自动化 测试框架 一 2016 08 05 目录 1 框架结构雏形2 把Java项目转变成Maven项目3 加入TestNG配置文件 4 Eclipse编码修改5 编写代码 5 1 封装Selenium操作 5 2
  • 为什么SpringBoot项目在使用别的框架的时候不用导入版本号?

    不管在学习过程当中还是在实战当中springboot已经逐渐成为了我们的常用框架 在用springboot项目的时候会发现 用其他框架不需要导入版本号 比如redis activemq等等J2EE框架 目录 1 Maven父子工程 2 Sp
  • c语言udp通信实例(linux)

    c语言udp通信实例 linux 2012 02 07 09 14 28 分类 C C server include
  • 这里有11种方法,供你用Python下载文件

    今天我们一起学习如何使用不同的Python模块从web下载文件 此外 你将下载常规文件 web页面 Amazon S3和其他资源 最后 你将学习如何克服可能遇到的各种挑战 例如下载重定向的文件 下载大型文件 完成一个多线程下载以及其他策略
  • 《淘宝技术这十年》读书笔记 (一).淘宝网技术简介及来源

    我似乎是2007年初中看 赢在中国 的时候喜欢上马云的 当时对电脑都不是很了解 更别提阿里巴巴和淘宝网了 但当时马云的几句点评还是深深地吸引了我 其中我印象最深的一句话就是 短暂的激情是不值钱的 只有长久的激情才是值钱的 以至于我在本科毕业