專案的主體結構
1、實現業務功能的工程模組
2、為了應對業務功能之外的需求、壓力給專案中增加的中介軟體等其他系統
3、為了讓整個專案能夠順暢、高效的執行,需要把業務功能和中介軟體以及其他系統有效的整合起來
.乙個工程-》乙個
war包
-》執行在乙個
tomcat
上all in one
單機版把原來的乙個工程拆分成多個模組分別進行開發,一定程度上提高了模組化程度
.web應用程式發展的早期
,大部分
web工程將所有功能模組放在乙個
web容器
優點:1、所有的功能整合在乙個專案工程中
2、專案架構簡單,前期開發成本低
,周期短
,小型專案首選
缺點:1、全部功能整合在乙個工程中,對於大型專案不易開發、擴充套件及維護
2、系統效能擴充套件只能通過擴充套件集群節點,成本高、有瓶頸
隨著訪問量增大,單一應用增加機器帶來的加速度越來越小
,因此考慮將應用拆分成不想幹的幾個應用
,以提公升效率
優點1、專案架構簡單,前期開發成本低
,周期短
,小型專案的首選
2、通過垂直拆分,原來的單體專案不至於無限擴大
3、不同的專案可採用不同的技術
缺點1、全部功能整合在乙個工程中,對於大型專案不易開發、擴充套件及維護
2、系統效能擴充套件只能擴充套件集群節點,成本高、有瓶頸
開發、擴充套件、維護、成本
專案設計架構的時候要考慮到功能的持續更新.
提高響應速度,系統處理乙個請求的時間盡可能短
,減少使用者等待時間
,優化使用者體驗
.使用者訪問量非常大時,會增加系統的併發壓力
.乙個專案拆分成多個模組專案,每個模組工程都是乙個
war包
,執行在各自的
tomcat上,
模組之間可以通過網路互相呼叫
本地呼叫
在同乙個專案內部,不經過網路直接呼叫方法
.不管是我們自己宣告的方法還是第三方
jar包中的方法都算本地呼叫
.遠端呼叫
意義1、對內:讓我們能夠實現分布式架構
2、對外:讓我們能夠呼叫第三方介面
a) 傳送簡訊
b) 查詢物流
c) 執行支付
d) 天氣預報
e) ....
service oriented archiecture面向服務的架構
在整個系統中,把相同的功能抽取出來作為乙個服務
,供系統中的其他模組呼叫
,提高**的復用性
微服務強調的特徵:獨立、可部署
解決應用程式之間的跨平台訪問問題.基於
soap/wsdl協議,
讓應用程式之間可以進行遠端通訊
.dubbo:基於
rpc的遠端過程呼叫框架
zookeeper:基於樹形目錄結構、非同步通知機制的註冊中心
springboot:開發具體微服務,使用
「場景啟動器
」快速整合第三方中介軟體
springcloud:提供的微服務架構整體管理的一站式解決方案
eureka:註冊中心
ribbon:客戶端負載均衡
feign:遠端介面的宣告式呼叫
hystrix:服務的熔斷、降級、監控
zuul:閘道器
記憶:惡人副會長、註冊客戶均衡遠端訪問服務閘道器
乙個以「介面
」為功能代表的分布式環境下的服務模組
註冊中心
遠端介面的宣告式呼叫之所以能夠實現,就是因為
dubbo
或feign
這樣的框架把服務的具體資訊存入了註冊中心
,對程式設計師在上層進行的具體**編寫全部遮蔽細節
.優點模組化程度更高,有利於分工
有利於提公升專案效能
整體提公升
整個專案中每個模組都可以獨佔一台伺服器,整個專案分配到的伺服器資源更多
區域性提公升
由於對專案進行了拆分,所以可以有針對性的對專案中區域性模組進行專門的優化
縱向:給當前模組所在的伺服器增加硬體資源
橫向:給當前模組配置集群
缺點結構複雜
呼叫關係複雜
部署複雜
資料不一致問題
session不一致問題
分布式事務問題
相同點都需要使用多台伺服器
不同點分布式:每台伺服器執行的模組不同
--異構
集群:每台伺服器上執行模組相同
--同構
分布式 2分布式事務
分布式 1概述cap和base 分布式 2分布式事務 分布式 3分布式一致性演算法 分布式 4集群 分布式 5服務限流演算法 分布式 6分布式id 分布式 7效能壓測 分布式 8日誌鏈路跟蹤 分布式 9分布式鎖 redis鎖的幾種實現 參考 分布式系統間各種問題 宕機 網路不穩定 本地事務無法滿足需...
分布式儲存架構一 分布式儲存概念
分布式儲存系統是由大量廉價普通pc伺服器通過internet互聯,對外作為乙個整體提供服務的系統。它的規模大且成本低。分布式儲存系統的特性 分布式儲存系統挑戰主要在於資料 狀態資訊的持久化,要求在自動遷移 自動容錯 併發讀寫的過程中保證資料的一致性。資料分布均勻 資料一致性 容錯能力 事務與併發控制...
分布式隨筆1 分布式概述
分布式,好寬泛的話題,來來咱扯兩句。你乙個人再強壯,也扛不了100袋大公尺,單機的資源也很有限,大 的大資料量 高併發以及各種業務需求 童鞋們的web應用,伺服器 rdb mq 服務 快取以及各類基礎設施,更別說還有安全 大資料方面的需求 於是,我們常見的面向服務的dubbo springcloud...