什么是Scale Up(纵向扩展)和Scale Out(横向扩展)?
全是干货的技术号:
本文已收录在github仓库 Java-Interview-Tutorial,欢迎 star/fork:
https://github.com/Wasabi1234/Java-Interview-Tutorial
1 Scale Out
即Scale horizontally,横向扩展,向外扩展 。
称为集群系统。指由多个节点组成的系统,这种系统的扩展主要以水平扩展方式(指增加节点的方式)来进行。
Scale-out 通过将多个低性能的机器组成一个分布式集群来共同抵御高并发流量的冲击。
比如向原有的web、邮件系统添加一个新机器。
2 Scale Up
即Scale vertically)纵向扩展,向上扩展。
称为单节点系统,指系统中只包括一个有效节点(如果需要HA时,可以将两个单节点以System Replication形式构成单节点的HA架构)。这种架构的系统只具有垂直扩展能力,当需要扩展系统时,通过在节点上增加更多的CPU、内存和硬盘来扩大系统的能力。
Scale-up通过购买性能更好的硬件提升系统的并发处理能力,
比如:我们向原有的机器增加CPU、内存数。
3 抉择
无论是Scale Out,Scale Up,Scale In,实际上就是一种架构的概念,这些概念用在存储上可以,用在数据库上,网络上一样可以。
何时选择Scale-up或Scale-out呢?
一般系统设计初期会考虑使用Scale-up,因为足够简单,堆砌硬件解决即可,但当系统并发超过单机的极限时,就要使用Scale-out了。
Scale-out虽能突破单机限制,但也会引入一些复杂问题。比如,
- 若某节点故障,如何保证 HA?
- 当多个节点有状态需要同步时如何保证状态信息在不同节点的一致性?
- 如何做到使用方无感知的增加和删除节点?
这些问题的存在与解决也伴随着分布式系统不断完善发展。
参考
- http://www.chinastor.com/jishu/scale.html
- https://support.huaweicloud.com/sap_faq/sap_04_0028.html
文章来源: javaedge.blog.csdn.net,作者:JavaEdge.,版权归原作者所有,如需转载,请联系作者。
原文链接:javaedge.blog.csdn.net/article/details/108722960
- 点赞
- 收藏
- 关注作者
评论(0)