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