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

深入浅出,以咖啡店为例演示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 (编译/仲浩 审校/毛梦琪)

VB软件开发中的错误捕获及处理技术 VB中Combo的一种输入检查制约方法的实现 VB中Winsock控制的UDP协议的使用 VB中的时间处理问题 Windows操作平台下CGI的实现 -VB资料 按下某组键(HotKey)便执行某程式-VB资料 把所有的字体名称放到 ComboBox -VB资料 把文件置入到Text或RichText中-VB资料 捕捉 MouseExit 事件 -VB资料 操作过程动态显示 -VB资料 查找月份的最后一天-VB资料 程序启动时,如何自动判断 MDB文件是否损坏并自动修复?-VB资料 读取和修改Windows注册表 -VB资料 对VB的IDE环境的扩展 防止文本控件中的部分滚动-VB资料 关闭正在运行的程序 -VB资料 关机消息的拦截 -VB资料 VB获得、设置鼠标双击间隔时间 VB获取当前系统平台 记载Windows使用的时间-VB资料 加速Visual Basic For Application(VBA) 监视程序的运行情况 -VB资料 交换鼠标按钮 -VB资料 交换鼠标左右键 -VB资料 禁止使用 Alt-Tab 或 Ctrl-Alt-Del -VB资料 控制光驱门的开关 -VB资料 VB利用 窗口函数监视系统的运行情况(VB类) VB判断是否在VB5环境下运行 VB判断一个32位程序是否结束 VB判断一个程序启动完成(不是结束) 屏蔽TextBox的系统菜单 -VB资料 关于 ACCESS 添加记录的问题? 为什么我在数据窗口中的sql语句中使用参数有错误?提示invalid和不完整! 在UNIX下如何编译C++程序 请教一个COM对象创建的问题 如何获取DropDownlist的SelectedItem.Text? lirun(笨笨狗)请进来领分 怎么得到数据库中的id值。 有点痛,不知道是什么病,大家帮忙看看 GOOGLE被中国"冷处理" 请介绍一本好一点的Winsock函数编程的书,电子书或者纸书都可以 关于全局CDatabase; mysqldump备份数据库时总是出错? 谁有http://211.100.6.72的源代码最好有附带的数据库连接说明。200 在2000server上安装oracle的问题,求教! 怎样深层理解delphi的类变量 数据库中日期范围怎么比较? 如何将Access的数据导入SQL-server 散分了,高手请进---.net不能够bug ???怎样在Delphi中对导出到Excel文件单元格进行划线???? 在VB中如何进行程序的数据输入有效性验证? 请上次回答我NT问题的同志进来拿分,上次只给了100 如何学winzip那样,在弹出菜单中增加一个新的项目 英国有好点的软件公司吗? 高分求救水晶报表问题? 从数据库中取最新的第10~第20条纪录的sql语句如何写啊?各位大侠帮忙啊 记录集问题 sco unix下可以运行tcpdump吗? 无法启动X,出现cound not init font path element unix:7100,removing from list...could not open default font 'fixed' 请问是否可以在VC++下编写一个声音程序,如何编写?(只要能发出一个或两个音符就可以了) 程序员今年还可以报吗? 在flash里面,用什麼命令,可以把gif變成矢量圖?? 怎么用TC编写一个显示320*240的16色位图的程序? 用什么函数可以得到msflexgrid的行号(row的值)? 请朋友们帮忙推荐几本PB8的关于B/S和三层结构编程的书 网上邻居的问题! 在ASP.NET中,控件好像不能被设置成控件数组,请高手回答 Word文章被锁定了! 非常奇怪的数据连接问题 乐晕了,散分! 数据库问题 韩国公司展示防性侵袭的贞操内裤(图文) asp+oracle中关于字符串相加的问题。 各位大哥,我对sybase很陌生,有几个简单的问题想请教,很急,在线等待!!! 有msdn的请进! 杭州程序员一个月多少钱啊 网上邻居求救啊 有没有DOM方面的资料呀 VC的Maximize Speed优化到底优化了什么? 动态建表 向各位高人求救 页面转移的问题,轻松拿分 细胞学说主要阐明了() A.细胞的多样性B.细胞结构的复杂性C.生物结构的统一性D.生物界的多样性 乙烯的结构简式可以写成CH2CH2不要双键吗?请问? 肠炎病人身体脱水后必须采取静脉注射生理盐水为什么复习生物是的问题,谢谢··肠炎病人身体脱水后必须采取静脉注射生理盐水是因为( ) A 生理盐水有利于组织细胞利用 B 生理盐 细胞学说主要阐述了什么? 高一立体几何(简单的)O1是正方ABCD-A1B1C1D1的上底面A1B1C1D1的中心,M是对角线A1C和截面B1D1A的交点.求证:O1,M,A三点共线. 患了肠胃炎的病人,医生往往要给他注射生理盐水,是为了( )A 维持体内水分的代谢平衡 B 维持体内水和无机盐的代谢平衡 C 维持体内无机盐的代谢平衡 D 调节体内血糖的浓度 胸有成竹指的十二生肖当中什么动物 为什么氢离子和亚铁离子和硫酸根能共存 KMnO4氧化kI实验中H2So4的作用 十二生肖三长两短指哪个动物 铝的化学性质及试验过程和结论怎样设计关于铝的性质的实验,最好有结论! 有什么 东方小故事 电动机的额定功率p,其中相电流和线电流到底该如何算?线电流I=P/(1.732*U*cosφ*η),相电流? 高一化学做铝的性质实验时,,不能用于除去铝表面氧化膜的是A砂纸打磨泡B在烧碱溶液里C泡在盐酸里D泡在热水 有关08年我国发生过的重大事件作文,如四川地震、北京奥运会、北京残奥会及神舟七号发射成功 微生物呼吸时的气体是什么 铁离子、亚铁离子、氯离子、氢离子、硫酸根离子是否能共存?为什么?在线等… 人体中有多少必需元素,多少微量元素,失去平衡会得什么疾病? 黄河的水文特点:是世界上含沙量最大的一条河流,下游成为“ ”长江的航运特点:是中国最重要的内河航运大动脉(被誉为“ ”) 铝有那些性质(要求设计实验证明,说清实验现象) 东方时事评论2010年8月20日 乙烯结构简式?如题 汽轮机水冲击的危害有哪些如题,汽轮机水冲击的危害主要有哪些呢 墙里一共二根线,以前是单独控制一个灯的,现在想换成五孔带开关插座,开关控制灯,插座独立使用问了一下人,说不能这接,只能要么控制灯,要反就插座,不能两全其美,如果能怎么接, 大洋洲的轮廓图怎么画? 汽轮机发生水冲击时,有哪些象征? 羧酸A(分子式为C5H10O2)可由醇B氧化得到,A和B可以生成酯C.符合这些条件的酯只有四种.请写出结构简式 细胞学说用现在的观点来看对吗?“细胞是生物体结构和功能的基本单位”对吗?病毒没有细胞结构啊? 简述汽轮机发生水冲击的象征? 分子式为C5H10O2的酯共有几种如果,先拿出一个官能团酯基,剩C4H10,先碳链异构共2种,然后官能团异构,总共只有4种。这种思路对不对啊? 如何根据电机实际输出频率f、电动机输出的有功功率P、滑差s、电机额定电压U、功率因数cosφ,计算出电机等值负荷阻抗,有个什么样的公式吗? CAO2+K2SO4+KI=?应该会有碘生成求具体方程式 化学式为C5H10O2羧酸A可由醇B氧化得到,A和B可生成酯C(相对分子质量为172),符合此条件的酯有几种希望写得详细点儿 黄河是世界上含沙量最大的一条河,全河含沙量的百分之九十来自于哪个河段 我应该装多大的漏电保护器和空气开关?我家电表是2.5(10)A,电线是4平方毫米单股铜线.室内线分为两路:一路接有电磁炉(最大1900W)、电饭煲(650W)、洗衣机(450W)、冰箱(100W)、电视(120W)计3220W;另 KI溶液与H2SO4酸化的H2O2反应的方程式 管式加热炉在点火前为什么要对炉膛进行蒸汽吹扫? 当正常人体感觉到冷时,通过神经和体液调节,可使:当正常人体感觉到冷时,通过神经和体液调节,可使 A.促甲状腺激素分泌减少 B.汗腺分泌量增加 C.皮肤毛细血管血流速度加快 D.有机物氧化分 化学式为C5H10O2的羧酸A可由醇B氧化剂得到,A和B可生成酯C(相对分子质量为172)化学式为C5H10O2羧酸A可由醇B氧化得到,A和B可生成酯C(相对分子质量为172),符合此条件的酯有几种?A.1种 B.2种 坐井观天是十二生肖里面的哪只动物 [关于物质的量浓度]V L Fe2(SO4)3 溶液中含a g 硫酸根离子V L Fe2(SO4)3 溶液中含a g 硫酸根离子,取此溶液 V/2,用水稀释成V /L ,则稀释后的溶液的 三价铁离子 的 物质的量浓度为 ( )A.a/576 mol/L B.125a/ 硫酸根离子和H离子和Cl离子和次氯酸根离子能共存吗 十二生肖中每种的动物的寓意 V 升Fe2(SO4)3溶液中汗Fe3+ m 克,则溶液中硫酸根离子的物质的量浓度为? 急!求各位高手 [例1]下图是一种分子式为C4H8O2的有机物的红外光谱谱图,则该有机物的结构简式为:红外光谱谱图 怎么看 额定电压220伏,功率45千瓦电机三角接法的电流 怀孕了,子宫还会产生卵细胞吗怀孕一个月的时候,我没发觉,行房后(体外射精)测试纸发现怀孕了,去B超检查就说有一个多月了,请问最后那一次可能又怀孕而且打B超都没看到吗? 急性肠胃炎患者严重脱水是,为什么要注射生理盐水是为了维持身体什么的代谢平衡 缩写句子:黄河是世界上含沙量最大的河(进行缩句)? 上海燃烧器配件找哪家 烘箱实验的原理和目地是什么 如何培养自己的创新思维 7.4V电池带动100个LED串联要多大的电阻 得了急性肠胃炎为什么要通过静脉注射生理盐水? 大学有机化学实验,对溴乙酰苯胺的制备中,溴滴加速率过快有什么副作用? 3个1.5V电池接一个黄光LED,需要多大的电阻,怎么换算? 要做一个土壤微生物实验,如何取其土样? 简述细胞学说的主要观点 大量饮水及静脉注射葡萄糖对尿量有何影响,为什么 急性肠胃炎的患者严重脱水时,为什么要注射0.9%的生理盐水A维持体内蛋白质代谢平衡 B维持体内水代谢平衡C维持体内糖类代谢平衡 D维持体内盐代谢平衡
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘