Spring Cloud之微服務架構
阿新 • • 發佈:2020-10-16
Spring Cloud之微服務架構
什麼是微服務架構
一個網站的開發,從架構層面來講,採用一臺伺服器可以支撐整個網站的執行,這種的稱為單體架構,隨著使用者的訪增多,一臺伺服器的壓力過大,難以支撐越來越多的訪問量,為了分擔伺服器壓力,這時候便會採用多臺伺服器叢集進行分壓處理,通過分負載均衡的方式把訪問分散在各個伺服器上,減少了某一臺伺服器的壓力,這種方式稱為橫向擴充套件(叢集)。但是這樣也會存在一個問題,網站一般是由多個業務模組組成的,而各個業務模組的訪問量可能大小不一,常用的功能訪問量大,不常用的功能訪問量少,叢集模式是把全部業務模組部署到一臺伺服器上或者說多個主機上,這樣存在的問題是會導致硬體資源的不合理分配,例如,用三個高效能的主機部署,這實際上是一種硬體資源的浪費,為什麼我們不把模組進行拆分呢,例如,我們可以根據訪問量的多少把其分為兩個模組,一個訪問量多的模組和一個訪問量少的模組,每個模組都是一個單獨的web服務(微服務),這樣的話只需要一個高效能和一個低效能的兩臺主機部署即可,從而可實現硬體資源的合理分配和利用(其中一個優點),這種架構思想就是微服務架構
單體
叢集
微服務(分散式)
微服務的主要優缺點
優點
- 每個服務之間都是鬆耦合,在各個階段都可獨立部署和測試,便於維護。
- 每個服務功能專一,便於小團隊來發,且程式碼量少,能夠快速修改響應。
- 便於伸縮和管理,可以只針對某個服務做叢集部署。
缺點
- 增加運維維護難度,需要掌握一定的DevOps 技巧。
- 由於是分散式的,會帶來鎖,事務等一系列問題。