三:大型网站的核心架构要素
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
需要關(guān)注性能、可用性、安全性、伸縮性,可擴(kuò)展性五個(gè)要素
性能:
? ? 瀏覽器端可以瀏覽器緩存,啟用gzip,但是這樣會(huì)增加CPU的壓力
? ? 合理布局頁面,css放在前面,js放在后面,因?yàn)轫撁媸菑纳贤落秩?/p>
? ? CDN,將靜態(tài)資源分發(fā)網(wǎng)絡(luò)機(jī)房,網(wǎng)絡(luò)機(jī)房前做反向代理存放靜態(tài)資源
? ? 應(yīng)用服務(wù)端,采用緩存,nosql數(shù)據(jù)庫,分布式緩存等存放熱點(diǎn)數(shù)據(jù),減少應(yīng)用端和數(shù)據(jù)庫壓力
? ? 采用消息隊(duì)列,
? ? 集群,使用負(fù)載均衡
? ? 代碼層級(jí)采用多線程操作
? ? 數(shù)據(jù)庫方面優(yōu)化服務(wù)端,使用緩存,分庫分表,或者直接采用nosql數(shù)據(jù)庫
? ? 指標(biāo)有tps,并發(fā)數(shù),響應(yīng)時(shí)間等
可用性:
? ? 采用集群,單臺(tái) 宕機(jī)不影響集群內(nèi)部工作,數(shù)據(jù)庫做復(fù)制
伸縮性:
? ? 動(dòng)態(tài)加入server,對(duì)集群內(nèi)部無影響
? ? 如果應(yīng)用服務(wù)是無狀態(tài)的那么基本沒啥影響,如果有狀態(tài)的就要考慮session的問題,
? ? 緩存服務(wù)器會(huì)影響路由,需要優(yōu)化路由算法
? ? 數(shù)據(jù)庫如果采用了分庫分表,也會(huì)影響,
? ? nosql基本都有很好的擴(kuò)展性
擴(kuò)展性:
? ? 更快的實(shí)現(xiàn)新需求,但是新需求對(duì)現(xiàn)有系統(tǒng)是透明的,基本無感知,目前可伸縮框架一般是兩中,一種是事件驅(qū)動(dòng)架構(gòu),另一種是分布式服務(wù)
? ? 事件驅(qū)動(dòng)架構(gòu):通常是指消息隊(duì)列,一般都可以動(dòng)態(tài)加入生產(chǎn)者消費(fèi)者
? ? 分布式服務(wù):將業(yè)務(wù)和復(fù)用服務(wù)分開,通過分布式框架服務(wù)進(jìn)行調(diào)用,基本無影響,現(xiàn)在國內(nèi)比較好的就是阿里的Dubbo,Sina的Motan,和當(dāng)當(dāng)?shù)腄ubbox,不過dubbox實(shí)在dubbo的基礎(chǔ)上開發(fā)的,
安全性
轉(zhuǎn)載于:https://my.oschina.net/u/1034481/blog/824942
總結(jié)
以上是生活随笔為你收集整理的三:大型网站的核心架构要素的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据规模恼同程,混合云飘来除杂症
- 下一篇: HDU5763 Another Mean