1. 程式人生 > 實用技巧 >Spring Cloud之微服務架構

Spring Cloud之微服務架構

Spring Cloud之微服務架構

什麼是微服務架構

​ 一個網站的開發,從架構層面來講,採用一臺伺服器可以支撐整個網站的執行,這種的稱為單體架構,隨著使用者的訪增多,一臺伺服器的壓力過大,難以支撐越來越多的訪問量,為了分擔伺服器壓力,這時候便會採用多臺伺服器叢集進行分壓處理,通過分負載均衡的方式把訪問分散在各個伺服器上,減少了某一臺伺服器的壓力,這種方式稱為橫向擴充套件(叢集)。但是這樣也會存在一個問題,網站一般是由多個業務模組組成的,而各個業務模組的訪問量可能大小不一,常用的功能訪問量大,不常用的功能訪問量少,叢集模式是把全部業務模組部署到一臺伺服器上或者說多個主機上,這樣存在的問題是會導致硬體資源的不合理分配,例如,用三個高效能的主機部署,這實際上是一種硬體資源的浪費,為什麼我們不把模組進行拆分呢,例如,我們可以根據訪問量的多少把其分為兩個模組,一個訪問量多的模組和一個訪問量少的模組,每個模組都是一個單獨的web服務(微服務),這樣的話只需要一個高效能和一個低效能的兩臺主機部署即可,從而可實現硬體資源的合理分配和利用(其中一個優點),這種架構思想就是微服務架構

思想,當然在實際開發中,模組拆分是根據業務需求等多種因素來考慮。另外這是web應用層面上的一個架構演變,不考慮資料庫和各種中介軟體層面的東西。

單體

image-20201013132620383

叢集

image-20201013132559812

微服務(分散式)

image-20201013132541708

微服務的主要優缺點

優點

  1. 每個服務之間都是鬆耦合,在各個階段都可獨立部署和測試,便於維護。
  2. 每個服務功能專一,便於小團隊來發,且程式碼量少,能夠快速修改響應。
  3. 便於伸縮和管理,可以只針對某個服務做叢集部署。

缺點

  1. 增加運維維護難度,需要掌握一定的DevOps 技巧。
  2. 由於是分散式的,會帶來鎖,事務等一系列問題。