網站開(kāi)發—從簡單到複雜(zá)
常常碰到的需求就是,做一(yī)個網站,就這樣,和某某某一(yī)樣就行……
但是,這個需求可是真不簡單,因爲,這個需求等于沒有需求,用戶量、并發度、頁面是否需要SEO、頁面兼容性、是否需要後台管理、CDN緩存是否要上等等一(yī)概不知(zhī)……
簡而言之,無效需求……
網站,這件事可以很簡單,也可以很複雜(zá)……
1. 簡單網站
類型: 展示頁,企業站點,後端 訪問要求不大(dà),SEO要完善
架構基本如下(xià)
服務器 1 台,CDN可選,後台語言推薦非阻塞的 nodejs,前端語言推薦原生(shēng)或 jQuery,CSS可以原生(shēng)來寫, 也可以使用Bootstrap等CSS框架
數據庫 非事務 mongodb /事務 mysql或pssql
反向代理 + 負載均衡 nginx
緩存 redis
2. 中(zhōng)等複雜(zá)度網站
類型: 用戶頻(pín)繁訪問的網站, 有一(yī)定的并發要求
架構基本如下(xià):
服務器: 若幹 數據服務器, 緩存服務器, 用戶認證服務器, 業務服務器要分(fēn)開(kāi)
後台語言: Java Golang Python NodeJS
前端: 高業務型采用前端框架 vue react, 展示型 采用jQuery
數據庫: 讀寫分(fēn)離(lí), 主從分(fēn)離(lí), 分(fēn)庫分(fēn)表, NoSQL存儲數據
緩存: 良好設計, 定時取熱數據, 增加緩存命中(zhōng)率, 主從分(fēn)離(lí) Redis集群
消息隊列服務: 解耦數據和行爲 MQ, Kafka
日志(zhì)收集及監控服務 flume ELK
3. 高複雜(zá)度網站
類型: 海量用戶訪問網站, 數據庫并發壓力高, 事務複雜(zá)
架構基本如下(xià):
服務器: 多組服務器集群, 異地冷備, 同城熱備, AB測試無縫切換, 廣泛的負載均衡, 代碼Bug追蹤ID
後台語言: 複雜(zá)多樣, 微服務化
前端: 和中(zhōng)等複雜(zá)度基本一(yī)緻, 需要引入組件的全局狀态管理 redux vuex等機制
數據庫: 多種存儲形式, 流式計算, 讀寫分(fēn)離(lí), 主從分(fēn)離(lí), 分(fēn)庫分(fēn)表, NoSQL存儲數據,大(dà)數據生(shēng)态
消息隊列服務及日志(zhì)收集服務