什么是微服务
微服務是一種開發軟件的架構和組織方法,其中軟件由通過明確定義的 API 進行通信的小型獨立服務組成。這些服務由各個小型獨立團隊負責。
微服務架構使應用程序更易于擴展和更快地開發,從而加速創新并縮短新功能的上市時間。
微服務強調的是服務的大小,它關注的是某一個點,是具體解決某一個問題或提供落地對應服務的一個服務應用,狹意的看,可以看作Eclipse里面的一個個微服務工程/或者Module。
一、整體式架構與微服務架構
通過整體式架構,所有進程緊密耦合,并可作為單項服務運行。這意味著,如果應用程序的一個進程遇到需求峰值,則必須擴展整個架構。隨著代碼庫的增長,添加或改進整體式應用程序的功能變得更加復雜。這種復雜性限制了試驗的可行性,并使實施新概念變得困難。整體式架構增加了應用程序可用性的風險,因為許多依賴且緊密耦合的進程會擴大單個進程故障的影響。
使用微服務架構,將應用程序構建為獨立的組件,并將每個應用程序進程作為一項服務運行。這些服務使用輕量級 API 通過明確定義的接口進行通信。這些服務是圍繞業務功能構建的,每項服務執行一項功能。由于它們是獨立運行的,因此可以針對各項服務進行更新、部署和擴展,以滿足對應用程序特定功能的需求。
二、微服務的特性
1. 自主性
可以對微服務架構中的每個組件服務進行開發、部署、運營和擴展,而不影響其他服務的功能。這些服務不需要與其他服務共享任何代碼或實施。各個組件之間的任何通信都是通過明確定義的 API 進行的。
2. 專用性
每項服務都是針對一組功能而設計的,并專注于解決特定的問題。如果開發人員逐漸將更多代碼增加到一項服務中并且這項服務變得復雜,那么可以將其拆分成多項更小的服務。
三、微服務的優勢
1. 敏捷性
微服務促進若干小型獨立團隊形成一個組織,這些團隊負責自己的服務。各團隊在小型且易于理解的環境中行事,并且可以更獨立、更快速地工作。這縮短了開發周期時間。您可以從組織的總吞吐量中顯著獲益。
2. 靈活擴展
通過微服務,您可以獨立擴展各項服務以滿足其支持的應用程序功能的需求。這使團隊能夠適當調整基礎設施需求,準確衡量功能成本,并在服務需求激增時保持可用性。
3. 輕松部署
微服務支持持續集成和持續交付,可以輕松嘗試新想法,并可以在無法正常運行時回滾。由于故障成本較低,因此可以大膽試驗,更輕松地更新代碼,并縮短新功能的上市時間。
4. 技術自由
微服務架構不遵循“一刀切”的方法。團隊可以自由選擇最佳工具來解決他們的具體問題。因此,構建微服務的團隊可以為每項作業選擇最佳工具。
5. 可重復使用代碼
將軟件劃分為小型且明確定義的模塊,讓團隊可以將功能用于多種目的。專為某項功能編寫的服務可以用作另一項功能的構建塊。這樣應用程序就可以自行引導,因為開發人員可以創建新功能,而無需從頭開始編寫代碼。
6. 彈性
服務獨立性增加了應用程序應對故障的彈性。在整體式架構中,如果一個組件出現故障,可能導致整個應用程序無法運行。通過微服務,應用程序可以通過降低功能而不導致整個應用程序崩潰來處理總體服務故障。
本次講解的SpringCloud就是微服務架構的佼佼者。
總結
- 上一篇: python正则表达式(. *)(一)
- 下一篇: 阿里P10赵海平跳槽字节跳动:深度解析跳