專案架構 分布式集群的演變

2021-10-05 13:18:22 字數 1659 閱讀 6238

all in one : 就是說我們的前端頁面,後台服務,和資料庫部署都在一台節點上面

我們的專案開發完成後需要進行部署,將tomcat和mysql 安裝到一台節點上,所有訪問請求都來操作這一台電腦,每台伺服器的同時訪問量(併發量)是有上限的,隨著現在網際網路使用者越來越多,單體架構不能滿足大量的併發,

甚至會導致伺服器宕機,重啟。伺服器停止執行,

單體架構的優勢

開發簡單,只需要建立乙個專案進行編碼即可

部署簡單,直接將專案打包發布到一台伺服器上,安裝所需要的工具:(tomcat,mysql)

開發成本低,對開發人員成本也低

單體架構的弊端

因為所有的模組都在乙個專案中,他們之間的耦合性是很高的,不方便後期的維護

所有的功能模組都發布到乙個伺服器上,如果其中的乙個模組出現了問題,那就需要將所有的服務下線,

因為所有的功能模組都在一起,每台電腦都有瓶頸,併發量不能很高,

總而言之 單體架構越來越少,但是他還是被優先考慮,因為簡單方便成本低,在一些管理系統中還是會用到單體架構

會用到nginx這門技術

多台電腦做相同的事情

就相當於乙個飯店裡面有很多的服務員,但是他們做的都是相同的事情,因為人多,忙不過來,所以就招聘更多的服務員,

優勢:提高併發量,根據集群的規模成倍提公升

弊端:1)沒有解決單體架構的模組見得耦合性

2)某個模組需要維護公升級的時候還是要停止服務

3)後台服務較多,需要新增負載均衡器 路由請求到指定的伺服器上進行處理,一旦負載均衡器宕機,整個集群不可用,所以我們的負載均衡器需要高可用 —>發布2個,乙個工作,另乙個當做備用

分布式架構就是各司其職

每個伺服器做自己的事情

將乙個完整的專案 拆分為多個小專案,單獨部署,模組之間對外提供的介面可以互相呼叫,不同的操作 訪問不同的服務即可,服務也可以發布成集群;

根據情況而定,需要面向大眾的模組發布成集群。

就好比飯店中有收銀員,廚師,服務員,他們有著自己的事情,

每個飯店中不會只有乙個服務員,乙個廚師。 所以他們也是乙個群體,相當於集群。

分布式架構的優勢:

1)把模組拆分,使用介面(這裡的介面也就是我們常說的controller)通訊,降低模組之間的耦合度

2)把專案拆分為若干個子專案,不同的團隊負責不同的子專案

3)增加功能時只需要在增加乙個子專案。呼叫其他系統的介面就可以

4)可以靈活的進行分布式部署(部署到不同的伺服器,不同的機房)

5)解決高併發的問題

弊端:1)系統架構變得複雜,開發難度提公升

2)架構複雜,學習成本(也就是錢和精力)較高

基於目前網際網路的發展,專案系統中會出現越來越多的新功能,會有越來越多的使用者,對我們的系統的高併發量,高可用和高效(響應速度) 有著高標準的要求,所以系統架構越來越負載,對我們開發人員來說也是一種挑戰和進步,這種分布式架構就是我們開發人員想要越來越強必須要掌握的乙個技能!

分布式集群架構

策略優點 缺點格式 uuid 實現簡單不占用頻寬 無序 不可讀 查詢慢 32位db自增 無 遞迴 db單點故障 擴充套件有瓶頸 snowflake 不占用頻寬 低位趨勢遞增 依賴伺服器時間 18位redis 無單點故障 效能優於db遞增 占用頻寬 redis集群需要維護 12位關係型資料庫都實現資料...

分布式專案架構

根據業務需求進行拆分成n個子系統,多個子系統相互協作才能完成業務流程子系統之間通訊使用rpc遠端通訊技術。優點 1.把模組拆分,使用介面通訊,降低模組之間的耦合度。2.把專案拆分成若干個子專案,不同的團隊負責不同的子專案。3.增加功能時只需要再增加乙個子專案,呼叫其它系統的介面就可以。4.可以靈活的...

微服務 分布式架構演變之路

最近兩個月因為一點破事停止了更新,真的是哭出了聲音。但是還好,之前說的微服務系列也算是開始了!大家有什麼建議可以提!這章講的是分布式架構的演變之路。1.單體應用架構 2.垂直架構 3.分布式架構 微服務 最開始的應用架構,是一台伺服器,開個web服務,乙個資料庫服務。這時候的應用效能受伺服器效能影響...