摘要:使用緩存兩個(gè)前提條件數(shù)據(jù)訪問(wèn)熱點(diǎn)不均衡數(shù)據(jù)某時(shí)段內(nèi)有效,不會(huì)很快過(guò)期反向代理本地緩存分布式緩存異步旨在系統(tǒng)解耦。
大型網(wǎng)站技術(shù)架構(gòu)-入門梳理
標(biāo)簽 : 架構(gòu)設(shè)計(jì)
[TOC]
羅列了大型網(wǎng)站架構(gòu)涉及到的概念,附上了簡(jiǎn)單說(shuō)明
前言本文是對(duì)《大型網(wǎng)站架構(gòu)設(shè)計(jì)》(李智慧 著)一書的梳理,類似文字版的“思維導(dǎo)圖”
全文主要圍繞“性能,可用性,伸縮性,擴(kuò)展性,安全”這五個(gè)要素
性能,可用性,伸縮性這幾個(gè)要素基本都涉及到應(yīng)用服務(wù)器,緩存服務(wù)器,存儲(chǔ)服務(wù)器這幾個(gè)方面
概述三個(gè)緯度:演化、模式、要素
五個(gè)要素: 性能,可用性,伸縮性,擴(kuò)展性,安全
演化歷程圖例可參考 大型網(wǎng)站架構(gòu)演化歷程:
初始階段的網(wǎng)站架構(gòu):一臺(tái)服務(wù)器,上面同時(shí)擁有應(yīng)用程序,數(shù)據(jù)庫(kù),文件,等所有資源。例如 LAMP 架構(gòu)
應(yīng)用和數(shù)據(jù)服務(wù)分離:三臺(tái)服務(wù)器(硬件資源各不相同),分別是應(yīng)用服務(wù)器,文件服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器
使用緩存改善網(wǎng)站性能:分為兩種,緩存在應(yīng)用服務(wù)器上的本地緩存和緩存在專門的分布式緩存服務(wù)器的遠(yuǎn)程緩存
使用應(yīng)用服務(wù)器集群改善網(wǎng)站并發(fā)處理能力:通過(guò)負(fù)載均衡調(diào)度服務(wù)器來(lái)將訪問(wèn)請(qǐng)求分發(fā)到應(yīng)用服務(wù)器集群中的任何一臺(tái)機(jī)器
數(shù)據(jù)庫(kù)讀寫分離:數(shù)據(jù)庫(kù)采用主從熱備,應(yīng)用服務(wù)器在寫數(shù)據(jù)時(shí)訪問(wèn)主數(shù)據(jù)庫(kù),主數(shù)據(jù)庫(kù)通過(guò)主從復(fù)制機(jī)制將數(shù)據(jù)更新同步到從數(shù)據(jù)庫(kù)。應(yīng)用服務(wù)器使用專門的數(shù)據(jù)訪問(wèn)模塊從而對(duì)應(yīng)用透明
使用反向代理和 CDN 加速網(wǎng)站響應(yīng):這兩者基本原理都是緩存。反向代理部署在網(wǎng)站的中心機(jī)房,CDN 部署在網(wǎng)絡(luò)提供商的機(jī)房
使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫(kù)系統(tǒng):數(shù)據(jù)庫(kù)拆分的最后手段,更常用的是業(yè)務(wù)分庫(kù)
使用 NoSQL 和搜索引擎:對(duì)可伸縮的分布式有更好的支持
業(yè)務(wù)拆分:將整個(gè)網(wǎng)站業(yè)務(wù)拆分成不同的應(yīng)用,每個(gè)應(yīng)用獨(dú)立部署維護(hù),應(yīng)用之間通過(guò)超鏈接建立聯(lián)系/消息隊(duì)列進(jìn)行數(shù)據(jù)分發(fā)/訪問(wèn)同一數(shù)據(jù)存儲(chǔ)系統(tǒng)
分布式服務(wù):公共業(yè)務(wù)提取出來(lái)獨(dú)立部署
演化的價(jià)值觀
大型網(wǎng)站架構(gòu)的核心價(jià)值是隨網(wǎng)站所需靈活應(yīng)對(duì)
驅(qū)動(dòng)大型網(wǎng)站技術(shù)發(fā)展的主要力量是網(wǎng)站的業(yè)務(wù)發(fā)展
誤區(qū)
一味追隨大公司的解決方案
為了技術(shù)而技術(shù)
企圖用技術(shù)解決所有問(wèn)題
架構(gòu)模式模式的關(guān)鍵在于模式的可重復(fù)性
分層:橫向切分
分割:縱向切分
分布式:分層和分割的主要目的是為了切分后的模塊便于分布式部署。常用方案:
分布式應(yīng)用和服務(wù)
分布式靜態(tài)資源
分布式數(shù)據(jù)和存儲(chǔ)
分布式計(jì)算
分布式配置,分布式鎖,分布式文件,等等
集群:多臺(tái)服務(wù)器部署相同的應(yīng)用構(gòu)成一個(gè)集群,通過(guò)負(fù)載均衡設(shè)備共同對(duì)外提供服務(wù)
緩存:將數(shù)據(jù)放距離計(jì)算最近的位置加快處理速度,改善性能第一手段,可以加快訪問(wèn)速度,減小后端負(fù)載壓力。使用緩存 兩個(gè)前提條件 :1.數(shù)據(jù)訪問(wèn)熱點(diǎn)不均衡;2.數(shù)據(jù)某時(shí)段內(nèi)有效,不會(huì)很快過(guò)期
CDN
反向代理
本地緩存
分布式緩存
異步:旨在系統(tǒng)解耦。異步架構(gòu)是典型的消費(fèi)者生產(chǎn)者模式,特性如下:
提高系統(tǒng)可用性
加快網(wǎng)站訪問(wèn)速度
消除并發(fā)訪問(wèn)高峰
冗余:實(shí)現(xiàn)高可用。數(shù)據(jù)庫(kù)的冷備份和熱備份
自動(dòng)化:包括發(fā)布過(guò)程自動(dòng)化,自動(dòng)化代碼管理,自動(dòng)化測(cè)試,自動(dòng)化安全檢測(cè),自動(dòng)化部署,自動(dòng)化監(jiān)控,自動(dòng)化報(bào)警,自動(dòng)化失效轉(zhuǎn)移,自動(dòng)化失效恢復(fù),自動(dòng)化降級(jí),自動(dòng)化分配資源
安全:密碼,手機(jī)校驗(yàn)碼,加密,驗(yàn)證碼,過(guò)濾,風(fēng)險(xiǎn)控制
核心要素架構(gòu)是“最高層次的規(guī)劃,難以改變的規(guī)定”。主要關(guān)注五個(gè)要素:
性能
可用性(Availability)
伸縮性(Scalability)
擴(kuò)展性(Extensibility)
安全性
架構(gòu)下面依次對(duì)這五個(gè)要素進(jìn)行歸納
高性能性能的測(cè)試指標(biāo)主要有:
響應(yīng)時(shí)間:指應(yīng)用執(zhí)行一個(gè)操作需要的時(shí)間
并發(fā)數(shù):指系統(tǒng)能夠同時(shí)處理請(qǐng)求的數(shù)目
吞吐量:指單位時(shí)間內(nèi)系統(tǒng)處理的請(qǐng)求數(shù)量
性能計(jì)數(shù)器:描述服務(wù)器或者操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo)
性能測(cè)試方法:
性能測(cè)試
負(fù)載測(cè)試
壓力測(cè)試
穩(wěn)定性測(cè)試
性能優(yōu)化,根據(jù)網(wǎng)站分層架構(gòu),可以分為三大類:
Web 前端性能優(yōu)化
瀏覽器訪問(wèn)優(yōu)化
減少 http 請(qǐng)求
使用瀏覽器緩存
啟用壓縮
CSS 放在頁(yè)面最上面,JavaScript 放在頁(yè)面最下面
減少 Cookie 傳輸
CDN 加速:本質(zhì)是一個(gè)緩存,一般緩存靜態(tài)資源
反向代理
保護(hù)網(wǎng)站安全
通過(guò)配置緩存功能加速 Web 請(qǐng)求
實(shí)現(xiàn)負(fù)載均衡
應(yīng)用服務(wù)器性能優(yōu)化:主要手段有 緩存、集群、異步
分布式緩存(網(wǎng)站性能優(yōu)化第一定律:優(yōu)化考慮使用緩存優(yōu)化性能)
異步操作(消息隊(duì)列,削峰作用)
使用集群
代碼優(yōu)化
多線程(設(shè)計(jì)為無(wú)狀態(tài),使用局部對(duì)象,并發(fā)訪問(wèn)資源使用鎖)
資源復(fù)用(單例,對(duì)象池)
數(shù)據(jù)結(jié)構(gòu)
垃圾回收
存儲(chǔ)服務(wù)器性能優(yōu)化
機(jī)械硬盤 vs. 固態(tài)硬盤
B+ 樹 vs. LSM 樹
RAID vs. HDFS
高可用高可用的網(wǎng)站架構(gòu):目的是保證服務(wù)器硬件故障時(shí)服務(wù)依然可用、數(shù)據(jù)依然保存并能夠被訪問(wèn),主要手段數(shù)據(jù)和服務(wù)的冗余備份及失效轉(zhuǎn)移
高可用的應(yīng)用:顯著特點(diǎn)是應(yīng)用的無(wú)狀態(tài)性
通過(guò)負(fù)載均衡進(jìn)行無(wú)狀態(tài)服務(wù)的失效轉(zhuǎn)移
應(yīng)用服務(wù)器集群的 Session 管理
Session 復(fù)制
Session 綁定
利用 Cookie 記錄 Session
Session 服務(wù)器
高可用的服務(wù):無(wú)狀態(tài)的服務(wù),可使用類似負(fù)載均衡的失效轉(zhuǎn)移策略,此外還有如下策略
分級(jí)管理
超時(shí)設(shè)置
異步調(diào)用
服務(wù)降級(jí)
冪等性設(shè)計(jì)
高可用的數(shù)據(jù):主要手段是數(shù)據(jù)備份和失效轉(zhuǎn)移機(jī)制
CAP 原理
數(shù)據(jù)一致性(Consisitency)
數(shù)據(jù)可用性(Availibility)
分區(qū)耐受性(Partition Tolerance)
數(shù)據(jù)備份
冷備:缺點(diǎn)是不能保證數(shù)據(jù)最終一致和數(shù)據(jù)可用性
熱備:分為異步熱備和同步熱備
失效轉(zhuǎn)移:由以下三部分組成
失效確認(rèn)
訪問(wèn)轉(zhuǎn)移
數(shù)據(jù)恢復(fù)
高可用網(wǎng)站的軟件質(zhì)量保證
網(wǎng)站發(fā)布
自動(dòng)化測(cè)試
預(yù)發(fā)布驗(yàn)證
代碼控制
主干開發(fā)、分支發(fā)布
分支開發(fā)、主干發(fā)布
自動(dòng)化發(fā)布
灰度發(fā)布
網(wǎng)站運(yùn)行監(jiān)控
監(jiān)控?cái)?shù)據(jù)采集
用戶行為日志采集(服務(wù)器端和客戶端)
服務(wù)器性能監(jiān)控
運(yùn)行數(shù)據(jù)報(bào)告
監(jiān)控管理
警報(bào)系統(tǒng)
失效轉(zhuǎn)移
自動(dòng)優(yōu)雅降級(jí)
伸縮性大型網(wǎng)站的“大型”是指:
用戶層面:大量用戶及大量訪問(wèn)
功能方面:功能龐雜,產(chǎn)品眾多
技術(shù)層面:網(wǎng)站需要部署大量的服務(wù)器
伸縮性的分為如下幾個(gè)方面
網(wǎng)站架構(gòu)的伸縮性設(shè)計(jì)
不同功能進(jìn)行物理分離實(shí)現(xiàn)伸縮
縱向分離(分層后分離)
橫向分離(業(yè)務(wù)分割后分離)
單一功能通過(guò)集群規(guī)模實(shí)現(xiàn)伸縮
應(yīng)用服務(wù)器集群的伸縮性設(shè)計(jì)
HTTP 重定向負(fù)載均衡
DNS 域名解析負(fù)載均衡
反向代理負(fù)載均衡(在 HTTP 協(xié)議層面,應(yīng)用層負(fù)載均衡)
IP 負(fù)載均衡(在內(nèi)核進(jìn)程完成數(shù)據(jù)分發(fā))
數(shù)據(jù)鏈路層負(fù)載均衡(數(shù)據(jù)鏈路層修改 mac 地址,三角傳輸模式,LVS)
負(fù)載均衡算法
輪詢(Round Robin, RR)
加權(quán)輪詢(Weighted Round Robin, WRR)
隨機(jī)(Random)
最少鏈接(Least Connections)
源地址散列(Source Hashing)
分布式緩存集群的伸縮性設(shè)計(jì)
Memcached 分布式緩存集群的訪問(wèn)模型
Memcached 客戶端(包括 API,路由算法,服務(wù)器列表,通信模塊)
Memcached 服務(wù)器集群
Memcached 分布式緩存集群的伸縮性挑戰(zhàn)
分布式緩存的一致性 Hash 算法(一致性 Hash 環(huán),虛擬層)
數(shù)據(jù)存儲(chǔ)服務(wù)集群的伸縮性設(shè)計(jì)
關(guān)系數(shù)據(jù)庫(kù)集群的伸縮性設(shè)計(jì)
NoSQL 數(shù)據(jù)庫(kù)的伸縮性設(shè)計(jì)
可擴(kuò)展系統(tǒng)架構(gòu)設(shè)計(jì)層面的“開閉原則”
構(gòu)建可擴(kuò)展的網(wǎng)站架構(gòu)
利用分布式消息隊(duì)列降低耦合性
事件驅(qū)動(dòng)架構(gòu)(Event Driven Architecture)
分布式消息隊(duì)列
利用分布式服務(wù)打造可復(fù)用的業(yè)務(wù)平臺(tái)
Web Service 與企業(yè)級(jí)分布式服務(wù)
大型網(wǎng)站分布式服務(wù)的特點(diǎn)
分布式服務(wù)框架設(shè)計(jì)(Thrift, Dubbo)
可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)(如 ColumnFamily 設(shè)計(jì))
利用開放平臺(tái)建設(shè)網(wǎng)站生態(tài)圈
安全XSS 攻擊和 SQL 注入攻擊是構(gòu)成網(wǎng)站應(yīng)用攻擊最主要的兩種手段,此外還包括 CSRF,Session 劫持等手段。
攻擊與防御
XSS 攻擊:跨站點(diǎn)腳本攻擊(Cross Site Script)
反射型
持久型
XSS 防御手段
消毒(即對(duì)某些 html 危險(xiǎn)字符轉(zhuǎn)義)
HttpOnly
注入攻擊
SQL 注入攻擊
OS 注入攻擊
注入防御
避免被猜到數(shù)據(jù)庫(kù)表結(jié)構(gòu)信息
消毒
參數(shù)綁定
CSRF 攻擊:跨站點(diǎn)請(qǐng)求偽造(Cross Site Request Forgery)
CSRF 防御:主要手段是識(shí)別請(qǐng)求者身份
表單 Token
驗(yàn)證碼
Referer Check
其他攻擊和漏洞
Error Code
HTML 注釋
文件上傳
路徑遍歷
Web 應(yīng)用防火墻(ModSecurity)
網(wǎng)站安全漏洞掃描
信息加密技術(shù)及密鑰安全管理
單向散列加密:不同輸入長(zhǎng)度的信息通過(guò)散列計(jì)算得到固定長(zhǎng)度的輸出
不可逆,非明文
可加鹽(salt)增加安全性
輸入的微小變化會(huì)導(dǎo)致輸出完全不同
對(duì)稱加密:加密和解密使用同一個(gè)密鑰
非對(duì)稱加密
信息傳輸:公鑰加密,私鑰解密
數(shù)字簽名:私鑰加密,公鑰解密
密鑰安全管理:信息安全傳輸是靠密鑰保證的,改善手段有:
把密鑰和算法放在一個(gè)獨(dú)立的服務(wù)器上
將加解密算法放在應(yīng)用系統(tǒng)中,密鑰放在獨(dú)立服務(wù)器
信息過(guò)濾與反垃圾
文本匹配
分類算法
黑名單
作者@brianway 更多文章:個(gè)人網(wǎng)站 | CSDN | oschina
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/61818.html
摘要:消息隊(duì)列技術(shù)介紹后端掘金一消息隊(duì)列概述消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用耦合異步消息流量削鋒等問(wèn)題。的內(nèi)存優(yōu)化后端掘金聲明本文內(nèi)容來(lái)自開發(fā)與運(yùn)維一書第八章,如轉(zhuǎn)載請(qǐng)聲明。 消息隊(duì)列技術(shù)介紹 - 后端 - 掘金一、 消息隊(duì)列概述 消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用耦合、異步消息、流量削鋒等問(wèn)題。實(shí)現(xiàn)高性能、高可用、可伸縮和最終一致性架構(gòu)。是大型分布式系...
摘要:表示的是兩個(gè),當(dāng)其中任意一個(gè)計(jì)算完并發(fā)編程之是線程安全并且高效的,在并發(fā)編程中經(jīng)常可見它的使用,在開始分析它的高并發(fā)實(shí)現(xiàn)機(jī)制前,先講講廢話,看看它是如何被引入的。電商秒殺和搶購(gòu),是兩個(gè)比較典型的互聯(lián)網(wǎng)高并發(fā)場(chǎng)景。 干貨:深度剖析分布式搜索引擎設(shè)計(jì) 分布式,高可用,和機(jī)器學(xué)習(xí)一樣,最近幾年被提及得最多的名詞,聽名字多牛逼,來(lái),我們一步一步來(lái)?yè)羝魄皟蓚€(gè)名詞,今天我們首先來(lái)說(shuō)說(shuō)分布式。 探究...
摘要:表示的是兩個(gè),當(dāng)其中任意一個(gè)計(jì)算完并發(fā)編程之是線程安全并且高效的,在并發(fā)編程中經(jīng)常可見它的使用,在開始分析它的高并發(fā)實(shí)現(xiàn)機(jī)制前,先講講廢話,看看它是如何被引入的。電商秒殺和搶購(gòu),是兩個(gè)比較典型的互聯(lián)網(wǎng)高并發(fā)場(chǎng)景。 干貨:深度剖析分布式搜索引擎設(shè)計(jì) 分布式,高可用,和機(jī)器學(xué)習(xí)一樣,最近幾年被提及得最多的名詞,聽名字多牛逼,來(lái),我們一步一步來(lái)?yè)羝魄皟蓚€(gè)名詞,今天我們首先來(lái)說(shuō)說(shuō)分布式。 探究...
摘要:表示的是兩個(gè),當(dāng)其中任意一個(gè)計(jì)算完并發(fā)編程之是線程安全并且高效的,在并發(fā)編程中經(jīng)常可見它的使用,在開始分析它的高并發(fā)實(shí)現(xiàn)機(jī)制前,先講講廢話,看看它是如何被引入的。電商秒殺和搶購(gòu),是兩個(gè)比較典型的互聯(lián)網(wǎng)高并發(fā)場(chǎng)景。 干貨:深度剖析分布式搜索引擎設(shè)計(jì) 分布式,高可用,和機(jī)器學(xué)習(xí)一樣,最近幾年被提及得最多的名詞,聽名字多牛逼,來(lái),我們一步一步來(lái)?yè)羝魄皟蓚€(gè)名詞,今天我們首先來(lái)說(shuō)說(shuō)分布式。 探究...
閱讀 521·2023-04-26 00:33
閱讀 3546·2021-11-24 09:39
閱讀 2940·2021-09-22 15:34
閱讀 2323·2019-08-23 18:07
閱讀 2917·2019-08-23 18:04
閱讀 3706·2019-08-23 16:06
閱讀 2900·2019-08-23 15:27
閱讀 1619·2019-08-23 14:32