我读了许多比较编程语言的文章。
经常有一个词:可扩展性。我实际上试图寻找一个简单明了的解释,但没有发现任何东西。
您能否解释可扩展性术语的含义?
我读了许多比较编程语言的文章。
经常有一个词:可扩展性。我实际上试图寻找一个简单明了的解释,但没有发现任何东西。
您能否解释可扩展性术语的含义?
Answers:
可伸缩性是程序进行伸缩的能力。例如,如果您可以在小型数据库(例如少于1000条记录)上做某事,那么具有高度可伸缩性的程序既可以在小型数据库上运行,也可以在大型数据库上运行(例如数百万或数十亿条记录) )。
就像差距所说的那样,资源需求将呈线性增长。查找Big-O表示法,以获得有关数据输入越大程序如何需要更多计算的更多详细信息。大输入x时,诸如Big-O(x ^ 2)之类的抛物线效率远不如Big-O(x)线性之类。
这里已经有了不错的答案,只想在这里添加一些内容。
可伸缩性可以通过两种方式实现:
垂直-通过这种方式,您可以添加更多的硬件,例如更多的RAM,处理器或更多的节点。您还将介绍负载均衡器,该负载均衡器将有助于根据使用的路由算法将传入呼叫路由到各种服务器。由于跨服务器共享负载,因此该应用程序现在能够处理更多负载。
水平-在水平缩放中,您以某种方式设计/设计应用程序,使其在出现更多并行流量时表现良好。您可以检查如何管理内存,会话,缓存和状态等。如果使用会话维护用户信息,则在负载较重的情况下,单个服务器可能会更忙于管理服务器,因此在这种情况下,您可以检查变得无国籍。它还可以并行响应来自同一用户的传入请求,而无需串行响应(如果正在使用会话)。