一、網站架構演變過程
傳統架構(單點)->分布式(以項目進行拆分)->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、服務發現與服務注冊、斷路器、路由政策、負載均衡、全局鎖、分布式會話、用戶端調用、接口網關、服務管理系統