1.什么是微服務?

隨著互聯網行業的發展,對服務的要求也越來越高,服務架構也從單體架構逐漸演變為現在流行的微服務架構。

微服務是一種經過良好架構設計的分布式架構方案。

微服務的上述特性其實是給分布式架構制定一個標準,進一步降低服務之間的耦合,提供服務的獨立性和靈活性。做到高內聚,低耦合。

2.服務架構的演變

單體架構將業務中的所有功能集中在一個項目上,打包部署的。

優點:架構簡單、部署成本低。

缺點:耦合型強、后期維護困難、升級困難。

 

分布式架構:根據業務功能對系統做拆分,每個業務功能模塊作為獨立項目開發,稱為一個服務。

優點:耦合性低,便于后期的維護,升級。

缺點:架構復雜,部署成本高。

 

微服務一種良好的分布式架構方案。

優點:拆分粒度更小、服務更獨立、耦合度更低。

缺點:架構非常復雜,運維、監控、部署難度提高。

 

微服務的架構特征:

  • 單一職責:微服務拆分粒度更小,每一個服務都對應唯一的業務能力,做到單一職責。

  • 自治:團隊獨立、技術獨立、數據獨立,獨立部署和交付。

  • 面向服務:服務提供統一標準的接口,與語言和技術無關。

  • 隔離性強:服務調用做好隔離、容錯、降級,避免出現級聯問題。

 

 

 

微服務技術在企業中的使用:

技術組合使用的技術棧服務接口服務調用
SpringCloud + Feign SpringCloud 技術棧 Restful風格 Feign方式(Http協議)
SpringCloudAlibaba + Feign SpringCloudAlibaba 技術棧 Restful風格 Feign方式(Http協議)
SpringCloudAlibaba + Dubbo SpringCloudAlibaba 技術棧 Dubbo使用方式 Dubbo協議標準
Dubbo模式(很少用) Dubbo 技術體系 Dubbo使用方式 Dubbo協議標準

 

 

SpringCloud

SpringCloud是目前國內使用最廣泛的微服務框架。

SpringCloud集成了各種微服務功能組件,并基于SpringBoot實現了這些組件的自動裝配,從而提供了良好的開箱即用體驗。

 

SpringCloud底層是依賴于SpringBoot的,并且有版本的兼容關系,如下: