SpringCloud 三 常用系統架構技術講解

2022-02-20 13:46:32 字數 1568 閱讀 6708

author:qyx

以前我們使用過單體架構,把多個系統放到乙個容器中集體呼叫,這種模式開發簡單,適合小型應用但不利於擴充套件且**耦合,後來我們引入和垂直應用架構,系統間相互獨立,通過前端統一呼叫,雖然解決了高併發的問題,也可以針對水平擴充套件,但也存在著系統間相互獨立,且重複開發的缺點,現在我們就來認識最常用的架構模式:分布式架構和微服務架構。

soa全稱為service-oriented architecture,即面向服務的架構,它可以根據需求通過網路對鬆散耦合的粗粒度應用元件(服務)進行分布式部署、組合和使用,乙個服務通常以獨立的形式存在與作業系統程序中。

站在功能的角度,把業務邏輯抽象成可復用、可組裝的服務,通過服務的編排實現業務的快速再生,目的:把原先固有的業務功能轉變為通用的業務服務,實習業務邏輯的快速復用

通過上面的描述可以發現soa有如下幾個特點、分布式、可重用、擴充套件靈活、松耦合

soa架構

當垂直應用越來越多,應用之間互動不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求

soa

抽取公共的功能為服務,提高開發效率

對不同的服務進行集群化部署解決系統壓力

基於esb/dubbo減少系統耦合

缺點:

抽取的服務粒度較大

服務提供方與呼叫介面耦合度較高

soa架構示意圖

微服務架構

優點:

通過服務的原子化拆分(拆到不可再拆了),以及微服務的獨立打包,部署和公升級,小團隊的交付週期將縮短,運維成本也將大幅度下降

微服務遵循單一原則,微服務之間採用restful等輕量協議傳輸

缺點:

微服務過多,服務治理成本高,不利於系統維護

分布式系統開發的技術成本高(容錯、分布式事務等)

流行的呼叫技術:rpchttp

分布式中的cap原理

c 一致性(多節點下資料一致) a 可用性(保持服務可以用:多節點) p 分割槽容錯性(是否可以將資料存到多個地方)

乙個系統中不可能同時滿足c、a、p

一般就是ac放棄分割槽容錯(物理資料庫) ap可以短暫允許資料的不一致(nosql資料庫的選擇,網際網路中用的較多) cp 放棄可用性()

Springcloud常用元件

一 eureka netfix下 雲端服務發現,乙個基於 rest 的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。二 spring cloud config spring下 配置管理工具包,讓你可以把配置放到遠端伺服器,集中化管理集群配置,目前支援本地儲存 git以及subversion...

springcloud常用註解

1 在主程式類名上新增註解 enableeurekaserver 開啟eureka註冊中心功能 2 在主程式類名上新增註解 enablediscoveryclient 將自己自動註冊到註冊中心 3 給容器中注入乙個resttemplate並使用ribbon進行負載均衡呼叫 loadbalanced ...

springcloud常用註解

configuration 表示將該類作用springboot配置檔案類 enableautoconfiguration 表示程式啟動時,自動載入springboot預設的配置 componentscan 表示程式啟動是,自動掃瞄當前包及子包下所有類 enablediscoveryclient en...