分布式架构的水平和垂直扩容
對于大型的分布式架構而言,我們一直在追求一種簡單、優雅的方式來應對訪問量和數據量的增長。而這種方式通常指的是不需要改動軟件程序,僅僅通過硬件升級或者增加機器就可以解決。而這種就是分布式架構下的伸縮設計?
伸縮分為垂直伸縮和水平伸縮兩種?
垂直伸縮:
表示通過升級或者增加單臺機器的硬件來支撐訪問量以及數據量增長的方式,垂直伸縮的好處在于技術難度比較低,運營和改動成本也相對較低。但是缺點是機器性能是有瓶頸的,同時升級高性能的小型機或者大型機,成本是非常大的。這也是阿里去IOE的一個原因之一?
增加CPU核心數:增加CPU后系統的服務能力能夠得到大的增長,比如響應速度、同時可以處理的線程數。
但是引入CPU后也會帶來一些顯著的問題?
1. 鎖競爭加劇;多個線程同時運行訪問某個共享數據,那么就涉及到鎖競爭,鎖競爭激烈時
會導致很多線程都在等待鎖,所以即時增加CPU也無法讓線程得到更快的處理。當然這里是有調優手段的,可以通過調優手段來降低鎖競爭?
2. 支撐并發請求的線程數是固定的,那么即時增加CPU,系統的服務能力也不會得到提升?
3. 對于單線程任務,多核心CPU是沒有太大的作用的?
增加內存:
增加內存可以直接提成系統的響應速度,當然,也有可能達不到效果,就是如果JVM堆內存是固定的。?
水平伸縮:
通過增加機器來支撐訪問量及數據量增長的方式,成為水平伸縮,水平伸縮理論上來說沒有瓶頸,但是缺點是技術要求比較高,同時給運維帶來了更大的挑戰?
垂直伸縮和水平伸縮都有各自的有點,我們在實際使用過程中都會對兩者做結合,一方面要考慮硬件升級的成本,一方面要考慮軟件改造的成本。
?
總結
以上是生活随笔為你收集整理的分布式架构的水平和垂直扩容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 应用服务器复杂告警,如何让应用服务器走向
- 下一篇: 引入负载均衡设备