天天看點

微服務 -- SpringCloud入門學習

一、為什麼學習Spring Cloud

項目開發中,随着業務越來越多,導緻功能之間耦合性高、開發效率底、系統運作緩慢、難以維護;微服務架構可以避免這些問題。而SpringCloud是微服務架構的實作。

1、系統架構演變

1.1 集中式架構

微服務 -- SpringCloud入門學習
微服務 -- SpringCloud入門學習

1.2 垂直拆分

微服務 -- SpringCloud入門學習
微服務 -- SpringCloud入門學習

1.3 分布式服務

微服務 -- SpringCloud入門學習
微服務 -- SpringCloud入門學習
微服務 -- SpringCloud入門學習

1.4 面向服務架構 (SOA)

微服務 -- SpringCloud入門學習

SOA結構圖:

微服務 -- SpringCloud入門學習
微服務 -- SpringCloud入門學習
微服務 -- SpringCloud入門學習

微服務 -- SpringCloud入門學習

二、微服務架構

2.1、分析

SOA使用了ESB元件的面向服務架構。但是ESB自身實作複雜,應用服務粒度較大,所有服務之間的通信都會經過ESB,會降低通信速度;而且部署、測試ESB比較麻煩。

2.2、微服務架構的概念

微服務 -- SpringCloud入門學習

2.3、微服務結構圖

微服務 -- SpringCloud入門學習
  •  服務啟動的時候,會将服務位址注冊到服務治理(服務注冊中心),需要使用時則從服務注冊中心傳回位址。
  • 微服務 -- SpringCloud入門學習

2.4、微服務的特點

微服務 -- SpringCloud入門學習

2.5、與使用ESB的SOA架構的差別

微服務 -- SpringCloud入門學習

 2.6、小結

  • 微服務架構,是一套使用小服務或者單一業務來開發單個應用的方式或途徑。
  • 微服務架構特點:單一職責、服務粒度小、面向服務(對外暴露REST API)、服務之間互相獨立
  • 與使用ESB的SOA架構的差別:微服務架構沒有使用ESB,而是有服務治理注冊中心。

三、服務調用方式

3.1、RPC和HTTP

(1)無論是微服務還是SOA,都面臨着服務間的遠端調用。那麼服務間的遠端調用方式有哪些呢?

微服務 -- SpringCloud入門學習

現在熱門的Rest風格,就可以通過http協定實作。

微服務 -- SpringCloud入門學習

 (2)小結

  • RPC:基于socket,速度快、效率高;webservice、dubbo
  • HTTP:基于TCP,封裝比較臃腫;對服務方和調用方沒有任何技術、語言的限定,自由靈活;RESTful、Spring Cloud

繼續閱讀