軟件&系統架構總綱

軟件&系統架構總綱

分層分割分佈式

異步集羣有緩存

安全冗餘自動化

伸縮擴展全能用

 AOP  與   IOC

MVC    +     DI

設計模式均負載

熔斷限流雅啓停

事務分佈ACID

離線計算與AI

 

軟件架構

分層:分層是計算機中的經典模式,比如TCP/IP.  業務中的MVC.  Network|DISK|DAL|UTIL|Service|Mediator|Controller|Viewer

分割:現代系統越來越複雜,如果商城APP,會所定單,端口,用戶等獨立出來,分成獨立的模塊、微服務、中臺。 

AOP:面向切面編程,攔截器,中間件(midleware)

IOC:控制反轉,回調,被調,軟件框架

DI:依賴注入,實現IOC的一種方式

MVC:Model,View,Controller.     mvp, mvvc

對象之間的關係:設計模式。 創建型,結構型,行爲型。  對象之間無非:A繼承B,A ref B, A ref nB, A ref A

系統架構

分佈式,集羣,冗餘:分片用來擴展系統性能和吞量,  複製集則可以解決數據可靠性能。

自動化:devops. 自動擴容,故障恢復

衡量計算機系統的5個指標:

易伸縮:可以隨意增加機器來線性提升性能,吞吐量

可擴展:添加新功能不用改老代碼,熱更新。

安全:   安全認證,https, ACL Key,風險控制系統。

高性能: 可以通過擴展機器來提升性能。 單機性能:要有好的數據結構和算法 + 異步操作+緩存, 少用鎖

高可用:一個結點有多個備份結點,隨時保持數據一致。 主節點出錯,從節點能自動切爲主

事務與分佈式事務:ACID, 2PC, 3PC,  TCC, 事務消息  Saga

離線計算:實時性不高的可以用離線計算,定時更新。 比如推薦系統

AI:人工智能,挖掘數據

客戶端到服務器的系統架構

就拿http緩存爲例:客戶端自己本地緩存,CDN緩存,DNS緩存, 網絡加速專線,正向代理緩存, lVS負載均衡,內部反向代理緩存,內部分佈式緩存redis,  服務進程內緩存,CPU緩存,磁盤緩存。

可以看出解決客戶端到服務器的訪問的問題,也採用了分層的思想。

 

軟件工程

人vs人。 客戶端,前端,服務器,測試,項目經理,產品經理,同一個公司其他部門,其他公司,外包。

良好的溝通與合作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章