当前位置:  开发笔记 > 前端 > 正文

可扩展性对您意味着什么?

如何解决《可扩展性对您意味着什么?》经验,为你挑选了3个好方法。

我发布了一个类似的问题,关于linq的可扩展性.关于可伸缩性在最近的一些对话中实际意味着什么,有很多不同的观点,所以它引发了我提出这个问题.可扩展性对您意味着什么?



1> Ed Altorfer..:

我从两个角度看可扩展性:

扩大

如果我在盒子上添加更多内存运行的内存,我可以获得多少额外的性能和容量?如果我有一个应用程序可以处理300多个连接,并且当我向服务器添加2 GB RAM时运行速度提高15%而另一个应用程序只能处理100多个连接并运行速度提高5%,那么应用程序A显然更具可扩展性.

缩小

现在,如果我在设置中添加更多的盒子,我可以获得多少额外的性能和容量?我可以设置Web前端来处理更多客户端流量吗?如果是这样,是否有线性增长?如果我添加3个盒子,我可以让3倍以上的用户访问我的网站吗?我可以添加更多数据库来分发数据负载吗?我可以扩展多线程吗?如果我可以轻松地将一台机器添加到我的网络中以增加我的应用程序的容量,那么它是可扩展的.

顺便说一下,这是n层的主要驱动力之一.



2> JB King..:

可扩展性意味着能够处理以下两个领域中的任何一个领域的增长:

1)易于添加新功能,修复错误.为了让代码做这些新事物有多难?虽然这在某些方面可能是可维护性的,但这也是您是否可以构建代码以轻松处理更大规模的问题.

2)能够处理越来越大的负载,这可能是Web开发中的多个请求,或者是一个简单的数据库驱动的网站的更大数据集,例如,您是否可以创建一个处理具有数十万行的表的应用程序,仍然被视为"快"?

通常对我来说,可扩展性意味着增长的能力.



3> Robert Rossn..:

我不认为可扩展性在没有上下文的情况下会变得有意义.

当我被问及系统的可扩展性时,我首先需要知道的是它的利用率预计会增长的方式.是否会有更多用户?现有用户会更加重视它吗?它的功能集会增长吗?它目前支持的交易组合会改变吗?用户体验是否需要改变?

(好的,所有这些问题的答案通常都是"是";然后在这些问题前加上"如何"这个词.)

选择一个并非完全虚构的示例:如果DBA必须花费两个小时从每个电子邮件消息中选择的信息中手动运行查询,那么当前支持极少数用户并且其用户群预计会快速增长的系统会出现严重的扩展问题他必须建立一个新帐户的时间.这不是一个可以通过添加更多资源来修复的问题,除非您将DBA包含在您要添加的资源列表中(并且有很多原因无法很好地扩展).

或者想象一个社交网站推出令人兴奋的新功能,如果你的朋友在线并通过一个漂亮的Ajax-y UI与他们聊天,你可以看到它.突然之间,在没有增加用户群的情况下,服务器每天处理的HTTP请求数量增加了20倍,而您对数据库可扩展性的担忧也会逐渐消退.(当然,除非你在聊天应用程序中涉及数据库.好好思考!)

当然,使您的Web应用程序无状态,以便您可以添加Web服务器,使Web页面具有幂等性,以便您可以添加代理,设计应用程序以便可以跨服务器对数据库进行分区,这些都将使您的应用程序可以在各种应用程序中进行扩展尺寸.非常值得思考这些东西.但是在你开始战斗之前弄清楚你的真正敌人是多么重要.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有