Web开发

首页 » 常识 » 问答 » 以一个咖啡店为例,学习如何扩展Web应用
TUhjnbcbe - 2023/2/7 23:34:00

我们以一个熟悉的咖啡店为例,如何扩展Web应用程序。

我有一家小咖啡店。我的费用与资源成正比,占地平方,包括公用事业,1名咖啡师和1杯咖啡机。我店的容量一次服务1位客户,花费3分钟来煮一杯咖啡,总共需要5分钟来服务一位客户。由于我的咖啡师工作无间断,而德国制造的咖啡机也从未间断,因此我的商店的最大吞吐量=每小时12个客户。

网络服务器

客户在高峰时段走开。我们一次只服务一位客户。没有空间等待。我升级商店。我的新设置更好!费用相同区域和公用事业,3名咖啡师,2杯咖啡机,2张椅子可容纳3分钟的时间冲泡2杯咖啡,约7分钟的时间可同时为3位客户提供服务,另外2位客户可以排队等候。并发客户=3,客户容量=5

垂直缩放

业务蒸蒸日上。是时候再次升级了。越大越好!支出平方和公用事业,5名咖啡师,4杯咖啡机,3张椅子容量成比例增加。一切都很好。在夏天,生意下降。这对咖啡店来说是正常的。我想回到较小的设置一段时间。但是我的房东不会让我那样缩放。垂直缩放对于我新兴的咖啡店来说很昂贵。更大并不总是更好。

使用负载均衡器水平扩展

房东愿意按照较小的3个咖啡师设置来扩大和缩小规模。如果我提前通知,他可以添加设置或取消设置。如果我可以在同一个店面中管理多个设置,那么……市场上有一个专门的柜台可以做到这一点!它允许多个客户立即与咖啡师交谈。实际上,面向客户的员工不必是咖啡师,而只是接订单的人。煮咖啡的咖啡师不必直接与讨厌的客户打交道。现在我有一个优势。如果需要扩展,可以租用另外3个咖啡师设置(碰巧是咖啡房东的标准设置),然后将其连接到我的特殊柜台。并进行相反的操作以缩小比例。虽然费用增加,但我也可以更好地处理容量。我可以水平地上下倾斜。

资源密集型处理

我的咖啡壶确实是通用食品壶。许多客户告诉我,他们希望购买新鲜出炉的面包。我将其添加到菜单。我有个问题。我使用的2杯咖啡机一次只能制作1磅的面包。而且,制作面包所需的时间是原来的两倍。就时间而言,1磅面包=4杯咖啡有时面包订单会阻塞我的系统!订购咖啡的顾客对等待不满意。关于我效率低下的消息四处传播。我需要一种按负载细分客户订单的方式,同时以最佳方式使用我的资源。

基于异步队列的处理

我介绍了基于令牌的队列系统。客户进来,下订单,获得令牌号并等待。订单接受者将订单放置在2个输入队列中-面包和咖啡。咖啡师查看队列和所有其他单位,并决定是否应该拿起下一份咖啡或下一份面包。咖啡或面包准备好后,将其放在出纸盒上,接单员喊出令牌编号。客户领取订单。-输入队列和输出托盘是新的。否则,资源是相同的,只是工作方式不同。-从客户的角度来看,与系统的交互现在非常不同。-费用和容量计算很复杂。系统的复杂性也增加了。如果出现任何问题,则调试和修复它可能会成问题。-如果客户接受此异步系统,并且我们可以管理复杂性,那么它将提供一种扩展容量和产品种类的方法。我可以吓到我的隔壁竞争对手。

超越范围

我们正在达到Web服务器驱动,负载均衡,基于队列的异步系统的极限。接下来是什么?我本来已经很弱的咖啡店比喻现在已经完全崩溃了。如果您想了解更多信息,请搜索DNS轮询和其他扩展技术。如果您不熟悉Web应用程序扩展,请对本页中提到的每个主题执行相同的操作。我的咖啡店类推过于简化,以引起人们对扩展Web应用程序的兴趣。如果您真的想学习,请尝试一下这些系统,并与具有实际知识的人进行讨论。

1
查看完整版本: 以一个咖啡店为例,学习如何扩展Web应用