- 系統(tǒng)架構(gòu)并非一蹴而就,架構(gòu)目標(biāo)也是隨著業(yè)務(wù)發(fā)展而變化,業(yè)務(wù)推送技術(shù)發(fā)展,技術(shù)反哺業(yè)務(wù)。
- 系統(tǒng)架構(gòu)演進(jìn):?jiǎn)螜C(jī) -->集群 -->分布式微服務(wù)
架構(gòu)演進(jìn)(日活用戶占總用戶量大概%4到%10,推測(cè)總用戶量)
(1)單體應(yīng)用架構(gòu)(1千UV以下)

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到沛縣網(wǎng)站設(shè)計(jì)與沛縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:
成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋沛縣地區(qū)。

優(yōu)點(diǎn):易于測(cè)試,便于集成,對(duì)小型項(xiàng)目友好。
缺點(diǎn):?jiǎn)?dòng)時(shí)間長(zhǎng),依賴龐大,單機(jī)性能瓶頸明顯,資源容易出現(xiàn)爭(zhēng)奪。
(2)應(yīng)用數(shù)據(jù)分離架構(gòu)(5千UV)

優(yōu)點(diǎn):易于測(cè)試,便于集成,對(duì)小型項(xiàng)目友好。
缺點(diǎn):?jiǎn)?dòng)時(shí)間長(zhǎng),依賴龐大,單機(jī)性能瓶頸明顯,資源容易出現(xiàn)爭(zhēng)奪。
(3)應(yīng)用集群架構(gòu)(1萬(wàn)UV)

優(yōu)點(diǎn):避免應(yīng)用程序單點(diǎn)故障,提高應(yīng)用處理能力。
缺點(diǎn):鏈路存在單點(diǎn)故障-網(wǎng)關(guān)-數(shù)據(jù)庫(kù),單機(jī)性能瓶頸明顯。
(4)應(yīng)用集群緩存架構(gòu)(5萬(wàn)UV)

優(yōu)點(diǎn):熱點(diǎn)數(shù)據(jù)緩存,提高性能。
缺點(diǎn):增加維護(hù)成本,包括緩存穿透/擊穿/雪崩等問(wèn)題。
(5)應(yīng)用集群+讀寫(xiě)分離架構(gòu)(10萬(wàn)UV)

優(yōu)點(diǎn):讀寫(xiě)分離,提高數(shù)據(jù)庫(kù)性能和可用性。
缺點(diǎn):增加維護(hù)成本,數(shù)據(jù)量激增單庫(kù)容易瓶頸。
(6)微服務(wù)化-分庫(kù)分表架構(gòu)(100萬(wàn)UV)

優(yōu)點(diǎn):易開(kāi)發(fā)、理解和維護(hù)獨(dú)立的部署和啟動(dòng),數(shù)據(jù)庫(kù)性能提升。
缺點(diǎn):分布式系統(tǒng)-分布式事務(wù)問(wèn)題,管理多個(gè)微服務(wù),服務(wù)治理問(wèn)題。
(7)多元化業(yè)務(wù)-數(shù)據(jù)異構(gòu)架構(gòu)(500萬(wàn)UV)

優(yōu)點(diǎn):數(shù)據(jù)源多樣化,業(yè)務(wù)性能提升明顯,系統(tǒng)復(fù)用性高,支撐更高并發(fā)+海量數(shù)據(jù)。
缺點(diǎn):運(yùn)維復(fù)雜增高,鏈路分析復(fù)雜和技術(shù)廣度+深度大。
常規(guī)互聯(lián)網(wǎng)項(xiàng)目HTTP請(qǐng)求響應(yīng)的全鏈路

三高下的架構(gòu)設(shè)計(jì)概述
- 對(duì)于技術(shù)人員的三高為:高并發(fā)、高可用、高性能
(1)什么是高并發(fā)?
- QPS/TPS 來(lái)衡量系統(tǒng)的對(duì)任務(wù)的處理能力
- TPS
- Transactions Per Second 每秒事務(wù)數(shù), 可以是一個(gè)接口、多個(gè)接口、一個(gè)業(yè)務(wù)流程, 包括增刪改操作
- QPS
- Queries Per Second, 每秒查詢數(shù), 指一臺(tái)服務(wù)器每秒能夠響應(yīng)的查詢次數(shù)
- QPS 只是一個(gè)簡(jiǎn)單查詢的統(tǒng)計(jì),不能描述增刪改等操作
- 如果只是查詢操作 TPS = QPS
(2)什么是高可用?
- SLA 衡量一個(gè)系統(tǒng)可用性有多高,目標(biāo)系統(tǒng) 7 x 24 小時(shí)不間斷服務(wù)。
- 分類
- 時(shí)間維度:系統(tǒng)可以正常使用時(shí)間與總時(shí)間之比(全年為例子)1年 = 365天 = 8760小時(shí)
- 99.9 = 8760 * 0.1% = 8760 * 0.001 = 8.76小時(shí)
- 99.99 = 8760 * 0.0001 = 0.876小時(shí) = 0.876 * 60 = 52.6分鐘
- 99.999 = 8760 * 0.00001 = 0.0876小時(shí) = 0.0876 * 60 = 5.26分鐘
- …
- 請(qǐng)求次數(shù)維度:請(qǐng)求總次數(shù)和失敗的占比 ( 1000次請(qǐng)求為例子,相對(duì)簡(jiǎn)單 )
- 系統(tǒng)可用性99%:表示1000個(gè)請(qǐng)求中允許1000 * (1- 99%) = 10個(gè)請(qǐng)求出錯(cuò)
- 系統(tǒng)可用性99.9%:表示1000個(gè)請(qǐng)求中允許1000 * (1- 99.9%) = 1個(gè)請(qǐng)求出錯(cuò)。
- …
- 9越多代表全年服務(wù)可用時(shí)間越長(zhǎng)服務(wù)更可靠,停機(jī)時(shí)間越短
- 但往往存在網(wǎng)絡(luò)/機(jī)房問(wèn)題,應(yīng)用更新發(fā)版導(dǎo)致服務(wù)不可用
- 大廠多數(shù)業(yè)務(wù)4個(gè)9是剛需,5個(gè)9是目標(biāo),6個(gè)9是理想
(3)什么是高性能?
- RT來(lái)衡量系統(tǒng)的響應(yīng)速度,程序處理速度非常快延遲低Latency,所占內(nèi)存少,cpu占用率低
(4)如何做到高并發(fā)-高性能技術(shù)?
系統(tǒng)架構(gòu)
- 無(wú)狀態(tài)業(yè)務(wù)-水平擴(kuò)展(Scale Out),只要增加服務(wù)器數(shù)量,就能線性擴(kuò)充系統(tǒng)性能
- 架構(gòu)的難點(diǎn)是難做到全鏈路的水平擴(kuò)展
【負(fù)載均衡】思想
- 節(jié)點(diǎn)輪詢、隨機(jī)、加權(quán)輪詢、節(jié)點(diǎn)固定hash
- 網(wǎng)絡(luò) DNS解析輪詢
- 網(wǎng)關(guān)分發(fā)請(qǐng)求后端服務(wù)
- 應(yīng)用服務(wù)內(nèi)部RPC負(fù)載均衡
- 數(shù)據(jù)存儲(chǔ)-分庫(kù)分表-負(fù)載分發(fā)
【緩存】思想
- 本地緩存/分布式緩存
- 前端瀏覽器緩存靜態(tài)資源
- 網(wǎng)絡(luò)DNS解析緩存
- 應(yīng)用程序 內(nèi)存緩存/分布式緩存
- 數(shù)據(jù)存儲(chǔ)Mysql Query Cache
【池化復(fù)用】思想
- 線程池/對(duì)象池/連接池/內(nèi)存池
- java線程池技術(shù)
- Jdbc/Redis/HttpClient連接池
- SpringIOC容器對(duì)象池
【異步】思想
- 多線程/消息隊(duì)列
- 前端ajax異步請(qǐng)求
- RocketMQ/Kafka 同步雙寫(xiě)-異步刷盤(pán)
- 應(yīng)用程序多線程異步處理
【預(yù)處理-惰性更新】思想
【分而治之】思想
- Mater-worker
- Hadoop中的MapReduce
- JDK. Fork/Join Framework
- 消息隊(duì)列的廣播消息
- 歸并排序算法
(4)如何做到高可用技術(shù)?
(冗余集群化 + 自動(dòng)故障轉(zhuǎn)移failover)
集群架構(gòu)
- 將多個(gè)相同的應(yīng)用程序集中起來(lái)提供同一種服務(wù),某個(gè)節(jié)點(diǎn)故障不影響系統(tǒng)
- 可以橫向擴(kuò)展性增加節(jié)點(diǎn)提高并發(fā)處理能力
微服務(wù)集群
Redis集群/Kafka集群/Nginx集群
Nacos集群/Mysql集群/ZK集群
熔斷降級(jí)
- 保險(xiǎn)絲,熔斷服務(wù),為了防止整個(gè)系統(tǒng)故障,拋棄一些非核心的接口和數(shù)據(jù),返回兜底數(shù)據(jù)
限流
隔離
- 服務(wù)和資源互相隔離,比如網(wǎng)絡(luò)資源,機(jī)器資源,線程資源等,不會(huì)因?yàn)槟硞€(gè)服務(wù)的資源不足而搶占其他服務(wù)的資源
多活架構(gòu)
同城雙活-雙機(jī)房
- 兩個(gè)機(jī)房部署在同城,物理距離較近,兩個(gè)機(jī)房用「專線」網(wǎng)絡(luò)連接,比單個(gè)機(jī)房?jī)?nèi)延遲要大一些,但整體的延遲是可以接受的
參考
- 同機(jī)房:0.1ms
- 同城雙機(jī)房:1ms(100公里內(nèi))
- 北京到廣州:55ms
異地多活-兩地三中心
- 兩地是指 2 個(gè)城市,三中心是指有 3 個(gè)機(jī)房,其中 2 個(gè)機(jī)房在同一個(gè)城市
- 同時(shí)提供服務(wù),第 3 個(gè)機(jī)房部署在異地,只做數(shù)據(jù)災(zāi)備
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
本文標(biāo)題:【架構(gòu)設(shè)計(jì)】互聯(lián)網(wǎng)架構(gòu)項(xiàng)目架構(gòu)演進(jìn)以及三高設(shè)計(jì)概述-創(chuàng)新互聯(lián)
瀏覽地址:
http://www.xueling.net.cn/article/gpegs.html