專案-整體架構
-
前端架構
-
使用者請求到達網站應用伺服器之前的環節
-
瀏覽器優化
-
瀏覽器本地頁面快取
-
合併http減少請求次數
-
頁面壓縮
-
-
CDN
-
將靜態頁面分發到離使用者最近的cdn伺服器
-
-
動靜分離,靜態資源獨立部署
-
靜態資源(js,css,網站logo,按鈕圖片等)部署在專門的伺服器上,和web應用動態服務分離,並使用專門二級域名
-
-
圖片服務
-
使用者上傳圖片使用獨立部署的圖片伺服器叢集,並使用專門二級域名
-
-
反向代理
-
在應用伺服器,靜態資源伺服器,圖片伺服器之前,提供頁面快取服務
-
-
DNS
-
DNS負載均衡
-
-
-
應用層架構
-
處理網站主要業務邏輯的地方
-
分層
-
使用框架進行分層,例如springmvc將專案進行分為view model controller
-
-
負載均衡
-
將多型伺服器組合為一個叢集,同過負載均衡技術將請求分發到不同的伺服器上,提高專案的高併發負載壓力
-
-
session管理
-
為了實現高可用的應用伺服器叢集,應用伺服器通常設定為無狀態的。所以需要用專門的機制管理session(使用者會話資訊),使叢集內甚至跨叢集可以共享session進行狀態統一
-
-
動態頁面靜態化
-
主要針對訪問量特別大並且更新不是很頻繁的動態頁面
-
將這種頁面進行靜態化,即生成一個靜態頁面,然後再利用靜態頁面的優化手段進行優化,比如CDN,反向代理,瀏覽器快取等。
-
-
業務拆分
-
分為縱向拆分和橫向拆分(可以實現系統的 伸縮性)
-
縱向拆分:將業務處理流程上的不同部分進行分離部署(比如:網站產品,可複用業務服務,基礎技術服務,資料庫)
-
橫向拆分:將不同的業務模組進行分離部署(網站前臺,賣家後臺,買家後臺)
-
降低了系統耦合度
-
-
虛擬化伺服器
-
將一臺物理伺服器分割為多個虛擬伺服器,對於一些併發訪問量比較少的業務,更容易用較少的資源構建高可用的伺服器叢集
-
-
-
服務層架構
-
提供基礎服務供應用層呼叫,完成網站業務
-
分散式訊息
-
採用訊息佇列機制,是實現業務和業務、業務和服務之間的非同步訊息傳送以及低耦合的業務關係。
-
使用訊息佇列也可以實現”削峰“的作用,就是在超出平常併發的時候,將一些請求放在訊息佇列進行非同步執行 。
-
-
分散式服務
-
提供高效能、低耦合、易複用、易管理的分散式服務。
-
在網站實現面向服務架構(SOA)
-
-
分散式快取
-
通過可伸縮的伺服器叢集提供大規模熱點資料的快取服務。
-
通常的網站中,80%的請求集中在20%的資料,所以將熱點資料進行快取,可以顯著提高網站的效能
-
-
分散式配置
-
在系統執行期提供配置動態推送服務,將配置修改實時推送到應用系統,無需重啟伺服器。
-
-
-
儲存層架構
-
提供資料、檔案的持久化訪問與管理服務
-
分散式檔案
-
網站的線上業務需要儲存的檔案大部分是圖片、視訊等較小的檔案,但是數量非常龐大,需要設計伸縮性比較好的分散式檔案系統。
-
在分散式檔案系統中,對於不同型別的檔案一應該設定不同的叢集,比如將大檔案與小檔案分離儲存,避免大檔案的長時間操作對小檔案影響。
-
-
關聯式資料庫
-
大部分系統還是主要使用關係型資料庫儲存資料,但是關聯式資料庫對伸縮性的支援比較差。對於大型系統,nosql不可避免的要使用
-
-
nosql資料庫
-
nosql資料庫產品有許多,在記憶體管理、資料模型、叢集分散式管理等方面各有優勢。
-
redis HBase等
-
-
資料同步
-
使用資料庫叢集,難免遇到資料同步的問題
-
叢集中的資料需要保持同步,這樣才可以保持高可用性,當一臺資料儲存伺服器當機後,可以保證資料不丟失,與資料的可用性
-
-
-
後臺架構
-
搜尋引擎
-
即使是網站內部的搜尋引擎,也要進行資料增量更新、構建索引等操作,這些都是在後臺定時進行的
-
-
資料倉儲
-
根據離線資料,提供資料分析和資料探勘服務
-
-
-
安全架構
-
保護網站和敏感資訊洩露
-
web攻擊
-
主要包括sql注入攻擊和xss攻擊
-
-
資料保護
-
敏感資訊加密傳輸與儲存,保護網站和使用者資產
-
-
-
資料採集與監控
-
監控網站訪問情況與系統執行情況
-
瀏覽器資料採集
-
通過在網站頁面中嵌入js指令碼採集使用者瀏覽器環境和操作記錄,分析使用者行為。
-
-
伺服器業務資料採集
-
採集使用者操作日誌和程式執行時業務資料
-
-
效能資料採集
-
採集服務端的效能資料,比如系統負載、記憶體使用率和網路卡流量等
-
-
系統監控
-
將前述採集的資料以圖表的方式展示給運維監控網站執行狀態。
-
根據採集的資料進行自動化運維、自動處理系統異常情況,實現自動化控制
-
-
系統報警
-
設定系統一些引數的閾值如果系統的數值超過該閾值,則進行報警。
-
-
相關文章
- 垂釣文旅專案 SaaS系統整體架構架構
- android專案整體介面架構(可直接複用)Android架構
- Docker整體架構Docker架構
- nginx 整體架構Nginx架構
- Dubbo框架————整體架構框架架構
- 4.3. Oracle整體架構Oracle架構
- Flutter系列(三) 整體架構Flutter架構
- Tomcat的整體架構Tomcat架構
- Underscore 整體架構淺析架構
- Netty整體架構解析Netty架構
- MySQL整體架構與記憶體結構MySql架構記憶體
- [譯] Go 語言的整潔架構之道 —— 一個使用 gRPC 的 Go 專案整潔架構例子Go架構RPC
- TiDB整體架構介紹TiDB架構
- Linux核心的整體架構Linux架構
- jQuery整體架構原始碼解析jQuery架構原始碼
- 軟體專案管理FollowMe_專案整體管理專案管理
- 專案重構之架構架構
- ==[圖]Spark系列(四)整體架構分析Spark架構
- jQuery原始碼分析系列 : 整體架構jQuery原始碼架構
- newsql新品TiDB的整體架構SQLTiDB架構
- 瓜子智慧線上客服整體架構架構
- 一張圖進階 RocketMQ - 整體架構MQ架構
- TiDB簡介與整體架構TiDB架構
- 專案-安全架構架構
- 談談專案架構架構
- 細緻解析:kubernets整體架構架構
- 死磕Tomcat系列(1)——整體架構Tomcat架構
- 【Mybatis原始碼解析】- 整體架構及原理MyBatis原始碼架構
- 鴻篇鉅製 —— LevelDB 的整體架構架構
- 精盡 MyBatis 原始碼分析 - 整體架構MyBatis原始碼架構
- RPC框架整體架構設計分析RPC框架架構
- 《高效能MySQL》筆記-整體架構MySql筆記架構
- OkHttp 3.7原始碼分析(一)——整體架構HTTP原始碼架構
- Oracle記憶體詳解之一 整體架構Oracle記憶體架構
- 信管筆記 -- 專案整體管理筆記
- Android專案架構搭建Android架構
- Vue專案架構優化Vue架構優化
- Android 專案最新架構Android架構