微服務簡介(微服務、其與單體應用區別、微服務好處)


一、什么是微服務

所謂微服務是SOA架構下的最終產物,該架構設計目標是為了肢解服務,使得服務能夠獨立運行。

微服務可以按照業務划分,將一組特定的業務划分成一個服務,每個服務都有自己獨立的數據庫,獨立部署,服務直接通過 REST API 進行通訊。每一個獨立運行的服務組成整個系統。

總結下,微服務就是,由單一應用程序構成的小服務,擁有自己的進程與輕量化處理,服務依業務功能設計,以全自動的方式部署,與其他服務使用 HTTP API 通訊。同時,服務會使用最小規模的集中管理(例如 Docker )技術,服務可以用不同的編程語言與數據庫等。微服務架構是將復雜臃腫的單體應用進行細粒度的服務化拆分,每個拆分出來的服務各自獨立打包部署,並交由小團隊進行開發和運維,從而極大地提高了應用交付的效率
微服務設計的原則:

  • 各司其職
  • 服務高可用和可擴展性

二、微服務與單體應用區別

  • 單體應用:傳統架構。集所有功能於一身構建一個項目,不可分開部署。
  • 單體架構所有的模塊全都耦合在一塊,代碼量大,維護困難,而微服務每個模塊就相當於一個單獨的項目,代碼量明顯減少,遇到問題也相對來說比較好解決。
  • 單體架構所有的模塊都共用一個數據庫,存儲方式比較單一,微服務每個模塊都可以使用不同的存儲方式(比如有的用 redis ,有的用 mysql 等),數據庫也是單個模塊對應自己的數據庫。
  • 單體架構所有的模塊開發所使用的技術一樣,微服務每個模塊都可以使用不同的開發技術,開發模式更靈活。
  • 單體應用是將所有功能模塊放在一個單一進程中,並且通過在不同的服務器上面復制這個單體進行擴展。

三、微服務的好處

  1. 微服務應用的一個最大的優點是,它們往往比傳統的應用程序更有效地利用計算資源。這是因為它們通過擴展組件來處理性能瓶頸問題。這樣一來,開發人員只需要為額外的組件部署計算資源,而不需要部署一個完整的應用程序的全新迭代。最終的結果是有更多的資源可以提供給其它任務。
  2. 微服務應用程序的另一個好處是,它們更快且更容易更新。當開發者對一個傳統的單體應用程序進行變更時,他們必須做詳細的 QA 測試,以確保變更不會影響其他特性或功能。但有了微服務,開發者可以更新應用程序的單個組件,而不會影響其他的部分。測試微服務應用程序仍然是必需的,但它更容易識別和隔離問題,從而加快開發速度並支持 DevOps 和持續應用程序開發。
  3. 第三個好處是,微服務架構有助於新興的雲服務,如事件驅動計算。類似 AWS Lambda 這樣的功能讓開發人員能夠編寫代碼處於休眠狀態,直到應用程序事件觸發。事件處理時才需要使用計算資源,而企業只需要為每次事件,而不是固定數目的計算實例支付。

通俗點解釋是:

  • 易於開發和維護:因為一個服務只關注一個特定的業務,業務就變得比較清晰。同時維護起來也是比較方便。
  • 單個服務啟動比較快:單個服務代碼量不會很多,啟動起來就會很快。
  • 便於伸縮:如果系統中有三個服務 ABC ,服務 B 的訪問量比較大,我們可以將服務 B 集群部署。

單體應用中,如果需要改動功能,那么則需要重新部署整個單體應用。而微服務則不需要,只需要重新部署修改的功能模塊那個微服務。每一個功能模塊都可替換和獨立維護的軟件單元,完全體現了高可復用性,高可維護性,高可擴展性。

 

<完>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM