天天看點

springcloud自學之路-1(理論知識鋪墊)

一、網站架構演變過程

傳統架構(單點)->分布式(以項目進行拆分)->SOA(面向服務架構)->微服務架構

(1)傳統架構:SSH或者SSM

缺點:耦合度太高,隻适合一個人或者小團隊開發。

(2)分布式架構基于傳統架構演變過來的。

傳統架構的話:

1.代碼沖突、任務不好配置設定、容易起沖突問題。

分布式架構基于傳統架構演變過來的。将傳統的項目以項目子產品進行拆分,比如拆分成會員項目、訂單項目、支付項目等。每個項目都有獨立的資料庫、redis等。

會員項目:登入、注冊

訂單項目:下單、查詢訂單

總結:分布式與傳統架構差別:

項目粒度更細、适合于網際網路人員開發、耦合度。

(3)SOA架構與微服務架構

SOA是面向服務的架構,俗稱服務化。可以了解為面向業務的邏輯層。将共同的業務代碼進行抽取出來,提供給其他接口進行調用。服務與服務之間通訊采用rpc遠端調用。底層基于SOAP或者ESB實作。底層使用HTTP或者HTTPS協定+重量級的資料交換格式進行通訊。在後面的微服務中,已經以json格式替代了xml,因為xml中有太多備援代碼。而json比較輕量,比較節約帶寬。

webservice底層是采用HTTP+XML(SOAP)

RPC是兩個或者多個應用實作遠端調用。

服務化:将共同的業務邏輯進行拆分,拆分成獨立的項目進行部署。沒有視圖層,了解成接口。

(4)微服務架構産生的原因

SOA缺點:

1.依賴中心化的服務發現與機制;

2.因為SOA架構采用SOAP協定(HTTP+XML),因為xml占用寬帶,整個xml封包中有非常大的備援資料,是以微服務中以輕量級的json方式替代xml。

3.服務管理混亂,缺少服務管理和治理設施不完善。

二、微服務架構模式定義

微服務架構是從SOA架構演變過來的,比SOA架構粒度更加精細。提高效率。服務與服務之間互不影響。每個服務獨立部署。更加輕量級,采用restful風格提供api。也就是http+json。更适合靈活開發。快速疊代産品。

三、微服務架構與SOA架構的差別

1.微服務架構基于SOA架構演變過來的,繼承SOA的優點,在微服務中去除SOA架構的ESB消息總線,采用HTTP+JSON(RESTFUL)進行傳輸。

2.微服務架構比SOA架構粒度更加精細,讓專業的人做專業的事兒(專注),目的是提高效率,每個服務之間互不影響,微服務架構中,每個服務必須獨立部署,微服務架構更加輕巧,輕量級。

3.SOA架構可能資料庫存儲會發生共享,但是微服務強調每個服務都是單獨的資料庫,保證服務之間互不影響。

4.微服務架構比SOA架構更适合網際網路公司進行靈活開發,快速疊代,因為劃分的粒度更細。

四、為什麼使用springcloud?

1.springcloud是目前一套比較完整的微服務解決方案架構。

2.一條龍服務。

五、springcloud簡介?

springcloud是基于springboot的基礎上開發的微服務架構,是目前一套非常完整的微服務解決方案的架構。包括服務治理、注冊中心、配置管理、斷路器、智能路由、微代理、控制總線、全局鎖、分布式會話等。

包括衆多子項目:

springcloud config 分布式配置中心

springcloud netflix 核心元件:

eureka 服務治理 注冊中心

Hystrix:服務保護架構

Ribbon:用戶端負載均衡器

Feign:基于ribbon和hystrix的聲明式調用元件

Zuul:網關元件

六、springcloud解決什麼問題?

RPC遠端調用、微服務解決方案、配置管理、注冊中心eureka、服務發現與服務注冊、斷路器、路由政策、負載均衡、全局鎖、分布式會話、用戶端調用、接口網關、服務管理系統