从咖啡馆的经营看Web应用的扩展

作者:熊崽Kevin 译来源:伯乐在线

译注:这是一篇趣文,作者是Vistaprint的工程师Sriram Devadas,他用如何经营一家咖啡馆作为例子来讲解Web应用所面临的扩展问题,文章生动有趣,讲解浅显易懂。

我经营着一家咖啡馆。经营成本同所用的资源成正比。

我的咖啡馆店面大概有一百平方英尺(约九平方米),雇佣了一个咖啡师,一台咖啡机。

营业能力:

每次能够服务一个顾客,用三分钟泡制一杯咖啡,算下来服务一个顾客的总时间是五分钟。

如果我的咖啡师不间断的工作,并且所使用的德制咖啡机不会出问题,那么我的咖啡馆的接待量为每小时十二位顾客。

Web服务器

高峰时期顾客很多,可是我们每次只能服务一位顾客,并且没有等候区。

所以我升级了店面,新店很棒!

升级后配置:

同样地店面面积,雇佣了三个咖啡师,购置了两台咖啡机并添加了两张椅子。

营业能力:

三分钟能够泡制两杯咖啡,约七分钟能够同时(Concurrent)服务三位顾客,并且还有两位顾客可以在新加的椅子上排队等待。

并发服务的顾客量=3,顾客接待量=5。

纵向扩展

新店大受欢迎,顾客络绎不绝,所以我再次升级了店面,新店面更大!设施更好!

升级后配置:

两百尺的店面,五位咖啡师,四台咖啡机,三把椅子。

营业能力随着投入的增加而变大,一切似乎都很美好。

然而随着夏天的到来,也到了咖啡馆经营的淡季。这时候由于经营成本的压力,我想减少店面的配置。但是我的老板不会让我这么干。

由于业务的涨落,纵向扩展对于我和我的咖啡馆而言代价有些过于昂贵了。有时候更大并不意味着更好。

通过业务量负载均衡进行横向的扩展

经过商议,老板同意以三个咖啡师为一组调整咖啡馆资源的配置,如果我事先通知,他可以增加或减少这样一组资源。

要是我能够管理多个同样配置的资源组…

是的,正好有这样一种特殊的吧台!这种吧台允许一个咖啡师同时服务多个顾客,事实上为顾客服务的人并不一定非要是咖啡师,顾客只需要有人为他们下单就可以了,并且咖啡师也并不需要直接同这些难缠的顾客打交道。

所以我做出了改进。如果我有扩展业务的需求,我会额外雇佣三个咖啡师(老板说OK),并且将他们放到哪个特殊的吧台中,如果业务量下降,我就会解除雇佣合同,让三位咖啡师撤出吧台。

随着投入的增加,店面的接待能力变得更强,同时营业能力可以动态调整。

资源密集型处理

我发现我的咖啡机非常全能,能够制造各种食品。许多顾客建议我应该在菜单中加上烤面包,我就这么做了。

这时候出现了一个问题:我所用的两台咖啡机需要花两倍泡制咖啡的时间来烤一磅的面包。

这么算来,烤一磅面包所花的时间等于泡制四杯咖啡所用的时间。

这样一来,面包订单有的时候会阻塞整个系统!点咖啡的顾客很不满,大家都在议论我的经营方式太低效。

我需要一个根据营业负载分流订单的方法,使我的资源能够优化的利用。

基于处理的异步队列

我发明了一种使用号牌的队列系统。

顾客到来,点单之后会拿到一个号牌并等待。

订单被分置于两个输入队列中,分别是面包和咖啡。

咖啡师根据目前两个队列以及店面资源的状况选择是响应咖啡订单还是面包订单。

一旦咖啡或是面包准备好了,会被放置于一个输出托盘中,并且服务员会叫号,顾客会把东西端走。

虽然输入队列及输出托盘是新加的,但是仍旧使用这些资源,只是说服务方式不同了。投入和服务能力的计算很复杂,所以整个系统的复杂性也随之增加了。所以如果这期间发生了问题,处理和解决将是很头疼的。如果顾客们能够接受这种异步的服务方式,并且我们能够控制这么复杂的系统,那我的咖啡馆就能够根据业务量扩展的同时还能提供多样的服务种类。这足以吓退那些竞争对手。

写在***

我们已经讨论了Web服务器、负载均衡以及基于队列的异步系统,那么接下来呢?

我的咖啡馆比喻已经可以结束了。

如果你真这些感兴趣,去找找经典的系统扩展的例子看看,例如循环DNS或其他相关技术。

如果你在Web应用扩展方面还是新手,那么先照着这篇文章中提到的方法先试试。

我所用的咖啡馆模拟只是一个简化的问题抽象,目的是描述Web应用扩展问题的精髓。

如果你真想学,那么仔细琢磨下这些系统,并且找个有实际经验并懂行的人讨论一下,那会很有帮助。

原文链接: highscalability 翻译: 伯乐在线 - 熊崽Kevin

译文链接: http://blog.jobbole.com/63235/

原文地址:https://www.toutiao.com/article/7039135186306531854/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


所以很多人都会选择将这些生活琐事来交给智能化产品,在众多产品中,扫拖机器人所给我们带来的便利性最强,扫地、拖地全都一气呵成,不需要人为过多干预,不过目前大多数扫拖机器人对于双手解放得不彻底。而石头作为
“昨天的经历都将成为明天的力量。” 将绝大部分精力都奉献给璃月港的刻晴,可以说是《原神》中的高人气角色了,虽然是常驻角色,并且对于普通玩家来说……刻师傅别刮了……不过作为开服就存在的角色,还有独特的剑法
最近,全球知名的通信产业盛会MWC 2024(2024世界移动通信大会)正式召开,其中,联发科以“连接AI宇宙”(Connecting the AI-verse)为主题,为大众展示出一系列在AI和移动通信技术等领域的最新突破,吸引了大量行业
今年上半年有很多值得关注的机型,其中华为最新的影像旗舰华为P70 Art也自然受到了业界不少的关注目光,目前关于这款机型的轮廓图已经在网上曝光。
目前,2024世界移动通信大会(MWC)正在西班牙巴塞罗那举行,值得一提的是,此次大会参展中国厂商非常多,包括华为、中兴、小米、荣耀等等多家厂商均在其列。
就在去年,真我推出了11 Pro+,用一个2亿像素传感器和zoom变焦功能,开启了中端手机影像的长焦大战,而后友商才姗姗来迟的跟进了2亿像素传感器。
【手机之家新闻】一年一度的MWC已经于当地时间2月26日在巴塞罗那正式开展,在本次MWC2024上全球各大厂商齐聚一堂,展出自家最新的技术与产品,其中中兴就参展本次MWC2024,并且展出了诸多面向企业端的产品,而旗下的
近日,联发科在MWC 2024(2024 世界移动通信大会)上展出了一系列令人瞩目的AI和移动通信技术突破,以“连接AI宇宙”(Connecting the AI-verse)的展厅吸引了无数业界精英和媒体的目光。特别是其现场的生成式AI技术
虽然目前国内已经有不少厂商入局折叠屏产品,但是努比亚却迟迟没有入局。不过在近日举办的MWC 2024展会上,努比亚发布了自家首款折叠屏手机——努比亚Flip,预计国内很快也会上市。
MWC 2024正在西班牙巴塞罗那举办,和往年一样,荣耀这次依旧携众多新产品、新技术参会。荣耀Magic6 Pro、荣耀Magic V2 RSR保时捷设计的机型在海外正式发布,并且还展示了魔法大模型、任意门等诸多新技术。
MWC 2024正在西班牙巴塞罗那如火如荼地举行,其中小米也参加了今年的大会,在会上发布了在国内大受欢迎的小尺寸旗舰——小米14。值得一提的是,高通公司CEO安蒙甚至亲临发布会现场为这款机型助阵。
《原神》是一直以来在机圈深受欢迎的游戏,在充满幻想的提瓦特大陆上,你可以邂逅不少性格迥异、能力独特的伙伴。而一加Ace系列一直就拥有非常强烈的电竞属性,也是畅玩《原神》的热门机型,而在本月,一加Ace 3将推
有不少网友发现,今年新机的发布时间相对于往年大幅提前,很多厂商在春节之前密集发布了自己最新的中高端机型,给人一种年后没什么新机可发了的感觉。不过魅族全新的大杯机型——魅族21 PRO非常值得期待,魅族科技也
2022年7月,小米12S Ultra正式发布,这款产品率先将1英寸大底主摄引入到移动影像领域,同时凭借鲜明的徕卡影调给人留下深刻的印象,同时这款产品也被视为了影像旗舰地位的机型。如果从那时算起,到现在差不多已经快过
随着智能手机的日益普及和智能化进程的加速,智能穿戴设备成为了人们关注的焦点。各大智能手机厂商纷纷进军智能穿戴市场,试图在这一新兴领域抢占先机。
早在去年秋天,HyperOS操作系统发布的时候,小米便勾勒出了“人车家全生态”的美好蓝图,而在这其中,小米的多终端统一战略是核心,目前已经有不少小米产品预装或者接受到了HyperOS操作系统的推送,在过去几个月的时
今年雷军将把更多的精力放在小米汽车上,所以接下来的手机业务将由刚刚兼任小米品牌总经理卢伟冰接管。同时雷军也在微博上表示小米2024年开年旗舰——小米14 Ultra即将在近期发布,并且将有卢伟冰进行讲解。另外,卢
新的一年有龙则灵,有愿必达。自1月19日起,荣耀加码“新年荣耀,一起成龙”年货节,在全国荣耀线下门店上线了“新年许愿处”、“龙运当头”等趣味活动,吸引大批消费者到店打卡许愿,戴龙头迎好运。与此同时,为了回
小米在官网微博中已经透露了关于小米14 Ultra信息,所以新机上市应该不会太晚。根据德国莱茵的官方消息,目前小米14 Ultra(型号为24030PN60G)获得了莱茵无频闪认证,表明这款手机可以有效减轻屏幕给用户带来的视觉疲
2月22日,上海广播电视台与华为举办鸿蒙合作签约仪式,宣布其官方客户端看看新闻APP将基于HarmonyOS NEXT鸿蒙星河版启动鸿蒙原生应用开发,为用户提供更加极致的新闻资讯服务体验。此次合作标志着上海广播电视台成为全国