说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

深入浅出,以咖啡店为例演示Web应用程序扩展

HTML文档下载 WORD文档下载 PDF文档下载
拥有海量用户确实是件值得期待的事情,然而设计支撑用户的应用却并不简单。这里Vistaprin从咖啡店经营入手,为大家分享Web应用的扩展之路。

【编者按】每个机构都期望拥有大量的活跃用户,因为在这个时代用户的数量直接与应用的价值挂钩,就比如日前WhatsApp被Facebook以160亿美元的天价收购。然而,海量用户地支撑并不是件容易的事情,本次为大家分享Vistaprint Web平台组Sriram Devadas的博文——从咖啡店管理看Web应用扩展。

以下为译文:

首先,我有一间咖啡店,经营的开销与资源成正比。我有1间100平方英尺的店面,同时还有1台咖啡机及1名咖啡调配师。

其次,是我店铺的产能:同时只能服务一个客户,一杯咖啡需要煮3分钟,每个客户服务时间总计5分钟。

假设我的咖啡师可以无休工作,德国制造的咖啡机同样坚固无比,那么我的咖啡店每小时就可以服务12名客人。


Web Server

鉴于同一时间只能服务一位顾客,因此在高峰时期会存在客户流失的情形,没有等待的空间。因此我得升级店铺,情况如下:

同样大小的店铺和基础设施,3个咖啡调配师,2个咖啡机以及2张椅子。这时候的店铺产能是,3分钟两杯咖啡,7分钟可以服务3个顾客,2个顾客可以在椅子上等待,即:并发客户=3,客户容量=5。


纵向扩展

生意兴隆,是时候升级了,我期望更大的产能,于是进行了如下的调整:

店铺占地扩大到200平方英尺,5个咖啡调配师,4个咖啡机及3把椅子。能力按比例提升,一切进行的非常好。

在夏季,生意冷淡。对于咖啡店来说再正常不过了,因此有些时候我特别想缩减开支,但是房东肯定不会那么好说话。因此对于我这样业务不恒定的公司来说,大不一定总是好事!


通过负载均衡器进行横向扩展

如果使用更小点可以安置3个咖啡机的柜台,同时我只做增加或减少柜台数量操作,那么房东肯定不会太在意。那么,只要预先通知,他就可以减少或者增加一个设施。但是,如果同一个时间,我只能照顾一个柜台上的生意,那该怎么弄?

幸运的是,这里有一种特殊的柜台恰恰就是这么设置的,这个柜台允许几个顾客同时与柜台管理员交互。实际情况下,负责柜台的员工也并不需要是个咖啡调配师,他只需要完成订单方面的相关工作,同时咖啡调配师也并不需要直接与顾客交流。这样的话,店铺的产能被提升,我也可以按需减少或者增加放置咖啡机的基础设施。


资源深加工

其实我的咖啡机是个通用型的食品制作工具,在接收到许多客户的现烤面包需求后,我决定把这个食品放到菜单上。

但是问题出现了,我使用的两个咖啡机1次只能制作1磅面包,并且耗费制作咖啡双倍的时间。因此从时间上看,1磅的面包=4杯咖啡。

因此有些时候面包的订单会阻塞整个系统,喝咖啡的顾客并不愿意等待太久,低效率的言语也随之出来。我需要1个方法来分割订单,同时更好地利用资源。


基于异步队列的处理

我引入了1个基于令牌的队列系统。在用户下单后会取得一个对应的令牌号码,然后等待他的食物。订单摄入部分会取得订单并分类存储——面包及咖啡。

咖啡调配师根据现有设备运行情况分析订单,并选择是先做面包还是咖啡。当面包或者是咖啡做好后,调配师会将它传出,随后柜台人员叫号发送。

除下新建的输入和输出队列,其他都是用着之前相同的资源,但是产能明显提高了。

从顾客的角度上看,他们有着和之前完全不一样的用户体验。

只要顾客能接受这个异步系统,我们就可以管理它的复杂性,它提供了1个容量和产品多样化的扩展途径,与邻居的竞争中将获绝对优势。


未来的扩展方向

当异步系统达到限制极限时,我们又该如何处理?很显然,在这种规模下咖啡店比喻已经完全不可用了,不妨深度搜索一些类似DNS round robin的技术。Web应用程序的扩展已经不是件新鲜的事情,不妨多参加一些交流,向扩展大师们取经。

原文链接:Intuitively Showing How To Scale a Web Application Using a Coffee Shop as an Example (编译/仲浩 审校/毛梦琪)

经验分享:百度测试架构师眼中的百度QA(一) 在线旅行服务行业开放API带来的新机遇 专访:悬疑恐怖游戏Year Walk美术及音效设计师 解密:微软都柏林数据中心的神秘“免费冷却”装置 云计算如何影响数字化营销? 榜单:十位帮我们打理数据的存储大佬 OpenStack Grizzly版发布 Comcast、CERN成为新会员 谷歌携Blink来势汹汹 WebKit将成明日黄花? 星巴克与苹果合作 顾客可免费下载付费App 微信回应信令争议 将启动2.5G网络优化计划 凤凰网CTO吴华鹏离职 先后供职长达10年 外媒:开发者每周编码时间仅19.1小时 AppGratis CEO现身说法:应用被苹果儆杀始末 一个Web设计师眼里的云计算 戴尔高管:服务器业务领先惠普五年时间 Hoodie:基于JS与CouchDB的超快速Web开发框架 设计优秀API的五大规则 盘点英特尔IDF2013第一天:技术产品新趋势 英雄组队去打怪!Nimble Quest开发团队访谈 云通讯平台打造本土Twilio 被逼无奈?传微软或明年秋发布iOS和Android版Office 欧洲各国政府将向大众开放公共数据 访联想云存储罗予晋:优化MooseFS,共建生态系统 磊友创始人赵霏:关于HTML5与Flash争执之我见 国际混乱C语言代码大赛优胜作品详解之“A clock in one line” 揭秘程序员大脑编程的七大“误区” 从Java到ObjC语言的桥梁:谷歌J2ObjC 0.7版本亮相 数据库管理系统ParElastic:打破常规 扩展云端MySQL 谷歌苹果专利纠纷意在战略无意和解 美法官为其苦恼 Facebook收购神秘移动软件创业公司Osmeta 修改驱动,使用Erlang+VoltDB实现每秒87.7万事务 我已被richeditctrl折腾得不行了,我有些文本要显示,只要求能改变颜色,行距,能该字体最好,谁能给我推荐一个控件,我备有厚礼! 一个C问题! 急!!!!高手请赐教! 请问我有一张FAT32的软盘,能不能在linux下读取盘上的内容呢? 关于连接共享的问题, 请帮忙 如何对动态创建地组件进行操作???救命!!!!! 请问嵌入式开发和单片机方面有什么关系??? WTO向中国开出首张罚单! 请问各位大侠,在西安哪里有介绍db2的书的? 我以前用VB,现在想转向VC++,可我看了一些VC++的入门书根本摸不着头脑,各位老师,我该如何是好??? 谁用过TextRect这个过程,为什么它的最后一个参数TextFlags无法用,一加上这个参数就报告参数个数太多? 请教一个关于Session的问题 急用,一个票据打印的问题???请教各位高手!多谢! 请哪位大虾解释一下线程中语句sleep(n)的含义,谢谢!!!! Norwaywoods(挪威的森林),谢谢你,请来拿分呀,天,送分都这么难!!! boundschecker大讨论,为何运行vc的go完毕后,未报内存泄露,但boundschecker去却报了一大堆错,信谁?详见内 关于java中,ftp的问题,用FtpClient如何获取server端的目录结构啊,多谢。 任务管理器不能正常工作 〉〉〉〉如何才能使用户禁止修改表单上的某些域??? 请问如何使某个窗体总是最上面,而且总是当前活动窗口? 如何保存对OLE对象(位图)的修改?在关闭OLE调用之后 '如何在ActiveReport1.0中的得知报表中当前打印位置. 请问考过MCSD的大虾,MCSD考试的题目是中文还是英文,每一门是多少钱? !!怎么让运行程序后的图标显示在任务栏中,即和输入法的图标放在一起 insmod ***.o 提示设备或资源忙!什么问题?????? 请教高手! 我以前没做过lotus开发,想转做这个不知该从何入手,请各位前辈指教(是不是如果没有项目经验找工就特别难?) 请问如何改变datagrid、sstab的颜色? 急!!! 请海星看过来,有关The art of computer programming 请教高手!很急的哦 java怎么处理无限循环中不可到达的语句?请指教,谢谢 asp的登录的验证漏洞如何解决 那里有文明3的下载呀? ORACL8的问题,进来看看 有谁知道现在北京有卖<寻秦记>后20集的吗? 请问哪里能下载到ASP电子商务的程序?谢谢! 标准c中有没有判断在某个目录下某种类型的文件是否存在的函数?比如e:\debug\*data*.ard !!!!win98黑屏,何故??? >>>>>>>>>>>>>>>>>>机器上的一个TCP|UDP端口被打开,怎么关闭它呢? 请问怎么定制屏幕右下角的显示(在不删除软件的前提下)? jbuiler5中用database连接oracle(我只有那么多分了) 如何让Listbox中的内容自动向下走,就像聊天室中自动向下滚动的效果一样!!那位教教我该怎么实现!! 有关DHCP 如何使工具栏显示两列button?用SetRows()为什么没反应? 汉王一装上去后,Palm就会频繁死机是什么原因? to wuyaohua(=化十=) :可以和你聊下么 > 用samba可以看到机器,但是无法浏览文件,急!!!!! 如何知道光标在CEdit中已经移到最左边,然后响应某一事件。 一个初学者的问题,敬请指教! ShareIt如何更改支付信息 某灯泡接在220V电路中功率为100W,当它和一电阻串联接入电路时,电阻的功率为9W,求此时灯的实际功率.快 如何增加水电解反应速率就是电解水通电产气速度 自来水电解后什么颜色是正常的?我家自来水电解后是黑色的,网上说黑色代表重金属(铅啊什么的)蓝色代表有致癌物什么的,正常来讲应该是什么颜色的,我看有重金属买个直饮机,但是长期 把一只标有“12V6W”字样的灯和一只电阻连到12V的电源上 ,灯能正常发光,而电路的总功率是9W,那么灯泡与电阻肯定是 联的,且电阻的阻止为 水的电解速度怎么提高,加进什么且无毒.提高水的氢含量还是啥的, 水质电解器电解水后水的颜色分析 将一灯泡接入电路中a,b两点,灯泡的实际功率是100W;将灯泡接入电路中c,d两点,电阻R的功率是9W求将灯接在c,d处时灯的实际功率图不好上传,我来描述一下吧:a├───|▔▔▔|─── c│ ▔▔ 一项工程,甲、乙合做10天可完成,甲、乙合做8天后,乙又单独做了5天才完成.若由乙单独做这项工程,需要多少天? 一件工程,甲队单独做需5天完成,乙队单独做需4天完成,甲乙两队的工作时间的比是几一件工程,甲队单独做需5天完成,乙队单独做需4天完成,甲乙两队的工作时间的比是几比几?甲乙两队的 汽车超载将会造成什么样的后果?你想对超载司机叔叔说什么? 一项工程,若甲队先做63天后,乙接着独做,还要28天才完成任务,如果甲乙合做需48天完成,甲队先做42天后,乙接着独做,还要几天才完成任务? 电灯、电流表和电阻串联接入电路中,电阻两端并联一个电压表(接上)当电阻短路后,电流表和电压表的示数会发生什么变化.(坐等答案) 水电解的方程式是? 甲乙原计划10天完成一项任务,6天后甲走了,乙用了8天才完成,求独做甲乙各须多少天才能完成利用分式方程求解. 在电路图中,就像可以把电流表看作导线,电压表可以看作短路,那么定值电阻应该可以看作什么啊? 请问水的电解方程式什么呢 水沸腾的宏观和微观是什么?水的电解的宏观和微观又是什么? 详细点、谢谢! 水循环和水的电解过程分别属于什么变化? 水的电解方程式的读法A:水在通电条件下,分解为氢气和氧气.B:2mol水通电分解得到2mol氢气和1mol氧.为什么以上两种说法都不对? 水沸腾和水的电解的宏观与微观解释 速求! 水的电解过程可以表示为? 食盐水可以电解,请问浓硫酸可以电解吗?方程式 用分子原子,宏观微观分别解释水的电解实验和水的沸腾.初三化学 水经过电解会变成什么? 甲独做工作需要15天,乙要25天~甲独做3天后由乙接替,乙还需多少天才能完成任务? 如何用宏观和微观来解释水的沸腾? 水的煮沸过程与电解过程有什么不同? 一项工程,甲独做15天完成,乙独做25天完成.现在甲单独做3天后又乙接替,乙还需做多少天? 从实现上微观上说明水沸腾和水电解在变化上的区别.从宏观上微观上说明水沸腾和水电解在变化上的区别 用2个开关同时控制一个灯的电路图怎么设计?(要保证用1开关点亮,用2开关可以关闭)你试试画图给俺看同时,2开关关闭后,用1开关又可以点亮灯 一件工作,甲队工作16天后,剩下的乙队还要25天完成,乙队先单独做35天后,剩下的工程甲队单独做,还要8天完成,如果一开始就由甲乙两队合作,多少天可以完成任务? 一项工程,甲乙合作20天完成,已知甲乙二人工作效率比是5:4,如果乙单独做,40天能完成吗? 玻璃的熔点是多少度? 电流表的示数为0.3安,如果小灯泡L的电阻是10欧姆,整个电路的电阻是30欧姆,求小灯泡L两端的电压和滑动变阻器连入电路中的电阻,电压表的示数(滑动变阻器一端连在电压表,一端连在开关 一项工程,甲乙合做用20天完成,己知甲的工作效率是5/4,如果乙甲独做,40天能完成吗?要列式计算. 玻璃的熔点是多少玻璃加热到多少度会发生变化 已知小灯泡正常发光时的电阻为20欧,通过的电流为0.5安.则小灯泡发光时两端的电压为多少伏?如果电源的电压为16伏,为使小灯泡正常发光,需要串联一个多少欧的电阻? 一项工程,甲乙合做用20天完成,已知甲乙二人的工作效率之比是5:4,如果乙单独做,40天能完成吗? 普通的白酒瓶,或普通的平板玻璃就是一般做窗户的那种,把它粉碎了一般多少度能熔化,我知道玻璃没有固定熔点,我想知道大概的范围.请不要复制别人的 某同学测3.8V小灯泡的额定功率,已知灯泡电阻约为10欧,则电流表 应选择( )量程,电压表应选择( )量 一项工程,甲.,乙合作用20天完成,已知甲,乙二人的工作效率是5:4,如果乙单独做,40天能完成吗? 普通玻璃熔点算是高么?多少度算熔点高? 在并联电路中,有一个10欧的电阻于一个标有“12V6W”的灯泡,开关控制电阻,电流表在干路上,电源电压12V有一个10欧的电阻R2于一个标有“12V6W”的灯泡,开关控制电阻R2,电流表在干路上,电源电压 一个电路图中,电流表,灯泡,电压表,定值电阻串联 若灯泡断路,与定值电阻并联的电压表是否还有示数? 一项工程甲单独做5天完成乙单独做七天完成,甲乙工作效率的比是( )工作时间的比是 水电解生成什么? 怎样提高水的电解速度?看了百度一些已有的回答,在不加入任何物质的情况下,可以通过加大电压、加大电解棒与水的接触面积来提高速度.请问:电压是不是可以无限大?电压最小是多少?读书 如图所示电路中,由于某一电阻断路,致使电压表和电流表的示数均比该电阻未断路时要大,则这个断路的电阻可能是:A.R1  B.R2   C.R3  D.R4如图 水电解实验后,水的质量发生改变吗我该相信谁 大家各抒己见 、我很为难啊、、 怎样提高水的电解速度?怎样提高水的电解速度? 石英是晶体还是非晶体? 油是晶体还是非晶体?如题 松香,明矾,冰,玻璃,铁,塑料,橡胶,蜂蜡,水晶,硫代硫酸钠中,属于晶体的是 水电解后的各种颜色代表什么? 灯泡和电阻串联接入电路中此时灯泡的功率为81w电阻的功率为9w若将灯单独接入电源上灯正常发光求灯额定功率 想提高水的电解速度有啥办法,安全可靠的. 水电解后出现的颜色对人体有哪些危害?比如:黄色、绿色、兰色、白色、红色、黑色.里面含有什么物质对人体都有哪些危害? 灯泡和一电阻串联姐在电源上,这是灯的功率为81W,电阻的功率为9W,若把灯直接接在电源上时,正常发光求灯的额定功率 松香,明矾,冰,玻璃,铁,塑料,橡胶,蜂蜡,水晶,硫代硫酸钠中,属于晶体的是,()他们有一定的熔化温度,在他们融化的过程中要()热量,温度().属于非晶体的是(),他们没有一定的熔化温度, 点燃水电解产生的气体是什么颜色的
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn