一.網(wǎng)站可用性度量
???????? 網(wǎng)站可用時(shí)間占比(4個(gè)9)
二.高可用架構(gòu)
???? 實(shí)現(xiàn)高可用架構(gòu)的主要手段:
???????? 數(shù)據(jù)服務(wù)的冗余備份和失效轉(zhuǎn)移
???? 高可用架構(gòu)的基本分層模型(與解決方案):
???????? 應(yīng)用層 => 負(fù)載均衡
???????? 服務(wù)層 => 負(fù)載均衡
???????? 數(shù)據(jù)層 => 冗余備份
三.高可靠的應(yīng)用(應(yīng)用服務(wù)器集群)
???? 一).使用負(fù)載均衡對無狀態(tài)服務(wù)進(jìn)行失效轉(zhuǎn)移(心跳檢測識別宕機(jī)服務(wù)器)
???? 二).session管理
???????????? 解決方案:
? ? ???????????? 1.復(fù)制
? ? ???????????? 2.綁定->原地址hash算法),一個(gè)客戶端只會(huì)訪問同一臺(tái)服務(wù)器(session綁定技術(shù))
? ? ???????????? 3.cookie記錄session(扯犢子)
? ? ???????????? 4.session服務(wù)器:
? ? ???????????? ??? 利用獨(dú)立部署的session服務(wù)器統(tǒng)一管理session
四.高可靠的服務(wù)(分布式部署可復(fù)用的公共服務(wù)模塊)
???? 一).分級管理
???????????? 核心服務(wù)(功能)使用好的硬件白修,部署備份
???? 二).超時(shí)設(shè)置
???????????? 負(fù)載均衡實(shí)現(xiàn)失敗轉(zhuǎn)移
???? 三).異步調(diào)用
???????????? 異步消息隊(duì)列
???? 四).服務(wù)降級
???????????? 拒絕服務(wù)及關(guān)閉服務(wù)
???? 五).冪等性設(shè)計(jì)
???????????? 對于特殊的業(yè)務(wù)場景設(shè)置其冪等
五.高可用的數(shù)據(jù)
???? 一).高可用數(shù)據(jù)的三層含義:
???????????? 持久性: 不會(huì)丟失
???????????? 可訪問性: 失效轉(zhuǎn)移
???????????? 數(shù)據(jù)一致性: 所有副本一模一樣
???? 二).數(shù)據(jù)備份
???????????? 冷備份: 恢復(fù)到上一個(gè)保存點(diǎn)缭召,啥也保證不了
???????????? 熱備份:
???????????????????????? 異步 => 主同從異
???????????????????????? 同步 => 主從同寫
???? 三).失效轉(zhuǎn)移
???????????? 失效確認(rèn):
???????????????????????? 心跳檢測
???????????????????????? 應(yīng)用程序訪問失敗報(bào)告 => 收到報(bào)告后還需進(jìn)行一次心跳檢測,以免誤報(bào)
???????????? 訪問轉(zhuǎn)移:
???????????????????????? 重新路由
???????????? 數(shù)據(jù)恢復(fù):
???????????????????????? 宕機(jī)恢復(fù)后恢復(fù)數(shù)據(jù)
六.高可用網(wǎng)站的軟件質(zhì)量保證
???? 一).網(wǎng)站發(fā)布 => 部分宕機(jī)發(fā)布
???? 二).自動(dòng)化測試 => 自動(dòng)化測試工具
???? 三).預(yù)發(fā)布驗(yàn)證 => 預(yù)發(fā)布服務(wù)器(不接入負(fù)載均衡偷仿,外網(wǎng)無法訪問)
???? 四).代碼管理 => git
???? 五).自動(dòng)化發(fā)布 => 火車發(fā)布模型
???? 六).灰度發(fā)布 => 漸進(jìn)式發(fā)布