一、為什麼學習Spring Cloud
項目開發中,随着業務越來越多,導緻功能之間耦合性高、開發效率底、系統運作緩慢、難以維護;微服務架構可以避免這些問題。而SpringCloud是微服務架構的實作。
1、系統架構演變
1.1 集中式架構
1.2 垂直拆分
1.3 分布式服務
1.4 面向服務架構 (SOA)
SOA結構圖:
二、微服務架構
2.1、分析
SOA使用了ESB元件的面向服務架構。但是ESB自身實作複雜,應用服務粒度較大,所有服務之間的通信都會經過ESB,會降低通信速度;而且部署、測試ESB比較麻煩。
2.2、微服務架構的概念
2.3、微服務結構圖
- 服務啟動的時候,會将服務位址注冊到服務治理(服務注冊中心),需要使用時則從服務注冊中心傳回位址。
2.4、微服務的特點
2.5、與使用ESB的SOA架構的差別
2.6、小結
- 微服務架構,是一套使用小服務或者單一業務來開發單個應用的方式或途徑。
- 微服務架構特點:單一職責、服務粒度小、面向服務(對外暴露REST API)、服務之間互相獨立
- 與使用ESB的SOA架構的差別:微服務架構沒有使用ESB,而是有服務治理注冊中心。
三、服務調用方式
3.1、RPC和HTTP
(1)無論是微服務還是SOA,都面臨着服務間的遠端調用。那麼服務間的遠端調用方式有哪些呢?
現在熱門的Rest風格,就可以通過http協定實作。
(2)小結
- RPC:基于socket,速度快、效率高;webservice、dubbo
-
HTTP:基于TCP,封裝比較臃腫;對服務方和調用方沒有任何技術、語言的限定,自由靈活;RESTful、Spring Cloud