国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營(yíng)銷資訊 > 網(wǎng)站運(yùn)營(yíng) > 詳解大型網(wǎng)站架構(gòu)的組成

詳解大型網(wǎng)站架構(gòu)的組成

時(shí)間:2023-09-30 12:30:02 | 來源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-09-30 12:30:02 來源:網(wǎng)站運(yùn)營(yíng)

詳解大型網(wǎng)站架構(gòu)的組成:

一. 大型網(wǎng)站架構(gòu)演化

1.1 大型網(wǎng)站架構(gòu)特點(diǎn)

  1. 高并發(fā)、大流量
  2. 高可用
  3. 海量數(shù)據(jù):需要存儲(chǔ)、管理海量數(shù)據(jù),需要使用大量服務(wù)器。
  4. 用戶分布廣泛,網(wǎng)絡(luò)情況復(fù)雜
  5. 安全環(huán)境惡劣:由于互聯(lián)網(wǎng)開放性,使得網(wǎng)站容易受到攻擊。
  6. 需求快速變更,發(fā)布頻繁
  7. 漸進(jìn)式發(fā)展
有好東西,一定想著大家。我是愛分享的Linux技術(shù)狂。大家記得關(guān)注我,也不要忘記點(diǎn)贊、評(píng)論、收藏。

同時(shí)也可以點(diǎn)擊 正在跳轉(zhuǎn) 我們?cè)谶@里一起學(xué)習(xí)、一起進(jìn)步,或者點(diǎn)擊 C/C++Linux服務(wù)器開發(fā)/后臺(tái)架構(gòu)師 免費(fèi)訂閱一下(每晚20點(diǎn)免費(fèi)直播學(xué)習(xí)),多一點(diǎn)知識(shí),多一份收獲,更多一點(diǎn)工資。

1.2 大型網(wǎng)站架構(gòu)演化過程

1.初始階段的網(wǎng)站架構(gòu): LAMP

2.應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離:用戶越來越多導(dǎo)致存儲(chǔ)空間不足,整個(gè)網(wǎng)站使用三臺(tái)服務(wù)器,應(yīng)用服務(wù)器、文件服務(wù)器和數(shù)據(jù)庫服務(wù)器。

3.使用緩存改善網(wǎng)站性能:80%的業(yè)務(wù)訪問集中在20%的數(shù)據(jù)上。可以把這一小部分?jǐn)?shù)據(jù)緩存在內(nèi)存中。緩存分為兩種:

4.使用應(yīng)用服務(wù)器集群改善網(wǎng)站的并發(fā)處理能力: 使用集群是網(wǎng)站解決高并發(fā)、海量數(shù)據(jù)問題常用的手段。增加服務(wù)器分擔(dān)原來服務(wù)器的訪問和存儲(chǔ)壓力。需要使用負(fù)載均衡來調(diào)度集群中的服務(wù)器,使服務(wù)壓力均衡的分配到各個(gè)機(jī)器。

5.數(shù)據(jù)庫讀寫分離:在網(wǎng)站用戶量達(dá)到一定規(guī)模后,數(shù)據(jù)庫因?yàn)樨?fù)載壓力過高而成為網(wǎng)站的瓶頸。 目前大部分主流數(shù)據(jù)庫都提供主從熱備功能,通過配置兩臺(tái)數(shù)據(jù)庫主從關(guān)系,可以將一臺(tái)數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)更新同步到另一臺(tái)服務(wù)器上。寫數(shù)據(jù)時(shí)訪問主數(shù)據(jù)庫,主數(shù)據(jù)庫通過主從復(fù)制機(jī)制將數(shù)據(jù)更新同步到從數(shù)據(jù)庫,這樣當(dāng)應(yīng)用讀數(shù)據(jù)的時(shí)候,可以通過從數(shù)據(jù)庫獲取數(shù)據(jù)。

6.使用反向代理和CDN加速網(wǎng)站響應(yīng):CDN和反向代理基本原理都是緩存,一方面加快數(shù)據(jù)訪問速度,另一方面也減輕了后端服務(wù)器的負(fù)載壓力。兩者的區(qū)別是:

  1. 使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng):采用業(yè)務(wù)分庫手段將不同業(yè)務(wù)的數(shù)據(jù)庫部署在不同的物理服務(wù)器上。 可以進(jìn)行垂直拆分和水平拆分。
  2. 使用NoSQL和搜索引擎:非關(guān)系數(shù)據(jù)庫是對(duì)可伸縮的分布式特性具有更好的支持。應(yīng)用服務(wù)器則通過一個(gè)統(tǒng)一數(shù)據(jù)庫訪問模塊訪問各種數(shù)據(jù),減輕應(yīng)用程序管理的諸多數(shù)據(jù)源麻煩。
  3. 業(yè)務(wù)拆分: 將一個(gè)網(wǎng)站拆分成許多不同的應(yīng)用,每個(gè)應(yīng)用獨(dú)立部署。應(yīng)用之間通過一個(gè)超鏈接建立關(guān)系。垂直拆分,將不相干的服務(wù)拆分出來。
  4. 分布式服務(wù):水平拆分,將多個(gè)業(yè)務(wù)中的公共業(yè)務(wù)服務(wù)提取出來、獨(dú)立部署。分布式服務(wù)通過調(diào)用共用業(yè)務(wù)服務(wù)完成具體業(yè)務(wù)操作。

1.3 大型網(wǎng)站架構(gòu)演化的價(jià)值觀

  1. 大型網(wǎng)站架構(gòu)技術(shù)的核心價(jià)值是隨著網(wǎng)站所需靈活應(yīng)對(duì)
  2. 驅(qū)動(dòng)大型網(wǎng)站技術(shù)發(fā)展的主要力量是網(wǎng)站的業(yè)務(wù)發(fā)展

1.4 網(wǎng)站架構(gòu)的誤區(qū)

  1. 一味追求大公司的解決方案
  2. 為了技術(shù)而技術(shù)
  3. 企圖用技術(shù)解決所有問題

二. 大型網(wǎng)站架構(gòu)模式

每一個(gè)模式描述了一個(gè)在我們周圍不斷重復(fù)發(fā)生的問題及該問題解決方案的核心。這樣,你能一次又一次地使用該方案而不必做重復(fù)工作

2.1 網(wǎng)站架構(gòu)模式

常用模式有:

1. 分層

將系統(tǒng)在橫向維度上切分成幾個(gè)部分,每個(gè)部分負(fù)責(zé)一部分相對(duì)比較單一的職責(zé),然后通過上層對(duì)下層的依賴和調(diào)用組成一個(gè)完整系統(tǒng)。

大型網(wǎng)站將網(wǎng)站系統(tǒng)分為:

分層好處:

挑戰(zhàn):

分層結(jié)構(gòu)內(nèi)部還可以繼續(xù)分層,如應(yīng)用層可以分為視圖層和業(yè)務(wù)邏輯層。在物理部署上,三層結(jié)構(gòu)可以部署在同一個(gè)物理機(jī)器上,但隨著業(yè)務(wù)發(fā)展必須對(duì)分層的模塊隔離部署。

2. 分割

分割按縱向方向?qū)浖M(jìn)行切分,將不同的功能和服務(wù)分割開來,包裝成高內(nèi)聚低耦合的模塊單元,這些單元或模塊可以獨(dú)立部署。存在的好處有:

3. 分布式

對(duì)于大型網(wǎng)站來說,分層和分割的一個(gè)主要目的是為了切分后的模塊便于分布式部署,即將不同模塊部署在不同的服務(wù)器上,通過遠(yuǎn)程調(diào)用協(xié)調(diào)工作。

分布式在解決網(wǎng)站高并發(fā)問題的同時(shí)也帶來其他問題:

分布式方案有幾種:

4. 集群

集群即多臺(tái)服務(wù)器部署相同應(yīng)用構(gòu)成一個(gè)集群,通過負(fù)載均衡設(shè)備共同對(duì)外提供服務(wù)。一個(gè)應(yīng)用由多臺(tái)服務(wù)器提供,當(dāng)某臺(tái)服務(wù)器發(fā)生故障時(shí),負(fù)載均衡設(shè)備或系統(tǒng)的失效轉(zhuǎn)移機(jī)制會(huì)將請(qǐng)求轉(zhuǎn)發(fā)到集群中其他服務(wù)器上,使服務(wù)器故障不影響用戶使用。

5. 緩存

緩存是將數(shù)據(jù)存放在距離計(jì)算最近的位置以加快處理速度、同時(shí)減輕后端應(yīng)用和數(shù)據(jù)存儲(chǔ)的負(fù)載壓力。數(shù)據(jù)緩存有兩個(gè)前提:

一般緩存包含多個(gè)方面:

6. 異步

計(jì)算機(jī)開發(fā)的一個(gè)重要目標(biāo)和驅(qū)動(dòng)力是降低軟件耦合性。 系統(tǒng)解耦的手段除了分層、分割、分布等還有一個(gè)重要手段是異步。

單一服務(wù)通過多線程共享內(nèi)存隊(duì)列的方式實(shí)現(xiàn)異步。在分布式系統(tǒng)中,多個(gè)服務(wù)器集群通過分布式消息隊(duì)列實(shí)現(xiàn)異步,分布式消息隊(duì)列可以看作內(nèi)存隊(duì)列的分布式部署(如消息隊(duì)列kafka)。

異步消息隊(duì)列有以下特性:

7. 冗余

想要保證在服務(wù)器宕機(jī)的情況下網(wǎng)站依然可以繼續(xù)服務(wù),不丟失數(shù)據(jù),就需要一定程度的服務(wù)器冗余運(yùn)行,數(shù)據(jù)冗余備份,這樣當(dāng)某臺(tái)服務(wù)器宕機(jī)時(shí),可以將其上的服務(wù)和數(shù)據(jù)訪問轉(zhuǎn)移到其他機(jī)器上。

數(shù)據(jù)庫除了定期備份、存檔保存,實(shí)現(xiàn)冷備份外,為了保證在線業(yè)務(wù)高可用,還需要對(duì)數(shù)據(jù)庫進(jìn)行主從分離,實(shí)現(xiàn)同步熱備份。

8. 自動(dòng)化

在無人值守的情況下網(wǎng)站可以正常運(yùn)行,一切都可以自動(dòng)化是網(wǎng)站的理想狀態(tài)。包含:發(fā)布過程自動(dòng)化、自動(dòng)化代碼管理、自動(dòng)化測(cè)試、自動(dòng)化安全檢查、自動(dòng)化部署、自動(dòng)化監(jiān)控、自動(dòng)化抱緊、自動(dòng)化失效轉(zhuǎn)移、自動(dòng)化失效恢復(fù)、自動(dòng)化降級(jí)、自動(dòng)化分配資源。

9. 安全

可以從以下幾個(gè)方面考慮:密碼、手機(jī)校驗(yàn)碼、通訊加密、敏感信息過濾、風(fēng)險(xiǎn)控制。

三. 大型網(wǎng)站核心架構(gòu)要素

架構(gòu)是最高層次的規(guī)劃,難以改變的決定。這個(gè)規(guī)劃和決定奠定了事物未來發(fā)展的方向和最終的藍(lán)圖。

軟件架構(gòu)是有關(guān)軟件整體結(jié)構(gòu)和組件的抽象描述,用于指導(dǎo)大型軟件系統(tǒng)各個(gè)方面的設(shè)計(jì)。系統(tǒng)的各個(gè)重要組成部分及其關(guān)系構(gòu)成了系統(tǒng)的架構(gòu),這些組成部分可以是具體的功能模塊,也可以是非功能模塊的設(shè)計(jì)與決策,他們相互關(guān)聯(lián)組成一個(gè)整體,共同構(gòu)成了軟件系統(tǒng)的架構(gòu)。

一般除了當(dāng)前系統(tǒng)功能需求外, 軟件架構(gòu)還需要關(guān)注性能、可用性、伸縮性、擴(kuò)展性和安全性5個(gè)要素。

3.1 性能

性能是網(wǎng)站的處理效率、通過一系列指標(biāo)去衡量,重要的有響應(yīng)時(shí)間、TPS、并發(fā)數(shù)、吞吐量等。

優(yōu)化可以從以下幾個(gè)方面進(jìn)行:

  1. 瀏覽器端:瀏覽器緩存、使用頁面壓縮、CSS/JS合并減少HTTP次數(shù)、合理布局頁面、減少Cookie傳輸?shù)仁侄巍?/li>
  2. 使用CDN:將網(wǎng)站靜態(tài)內(nèi)容分發(fā)至離用戶最近的網(wǎng)絡(luò)服務(wù)商機(jī)房。是用戶通過最短訪問路徑獲取數(shù)據(jù)。
  3. 部署反向代理:通過反向代理緩存熱點(diǎn)文件、加快請(qǐng)求響應(yīng)速度,減輕應(yīng)用服務(wù)器負(fù)載壓力。
  4. 應(yīng)用服務(wù)器本地緩存和分布式緩存:通過緩存熱點(diǎn)數(shù)據(jù)處理用戶請(qǐng)求,加快請(qǐng)求處理過程,減輕數(shù)據(jù)庫負(fù)載壓力。
  5. 異步操作: 將用戶請(qǐng)求發(fā)送至消息隊(duì)列等待后續(xù)任務(wù)處理,而當(dāng)前請(qǐng)求直接返回響應(yīng)給用戶。
  6. 集群: 在高并發(fā)請(qǐng)求的情況下,使用負(fù)載均衡技術(shù)為一個(gè)應(yīng)用構(gòu)建一個(gè)由多臺(tái)服務(wù)器組成的服務(wù)器集群,將并發(fā)訪問請(qǐng)求分發(fā)到多臺(tái)服務(wù)器上處理,避免單一服務(wù)器因負(fù)載壓力過大而響應(yīng)緩慢,使用戶請(qǐng)求具有更好的響應(yīng)延遲特性。
  7. 代碼層面:使用多線程、改善內(nèi)存管理等手段優(yōu)化性能。
  8. 數(shù)據(jù)庫端:使用索引、緩存、SQL優(yōu)化等性能優(yōu)化手段。

3.2 可用性

可用性:當(dāng)服務(wù)器宕機(jī)的時(shí)候,服務(wù)或應(yīng)用依然可用。主要衡量標(biāo)準(zhǔn)一個(gè)系統(tǒng)設(shè)計(jì)是否滿足高可用的目標(biāo),就是假設(shè)系統(tǒng)中任何一臺(tái)或多臺(tái)服務(wù)器宕機(jī)時(shí),已經(jīng)出現(xiàn)各種不可預(yù)期的問題時(shí),系統(tǒng)整體是否依然可用。

高可用的主要手段是冗余。

3.3 伸縮性

伸縮性是指通過不斷向集群加入服務(wù)器的手段來環(huán)節(jié)不斷上升的用戶并發(fā)訪問壓力和不斷增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求。主要衡量標(biāo)準(zhǔn)是:

主要策略有:

3.4 擴(kuò)展性

不同于其他架構(gòu)要素主要關(guān)注非功能性需求,網(wǎng)站的擴(kuò)展性架構(gòu)直接關(guān)注網(wǎng)站的功能需求。網(wǎng)站擴(kuò)展性的目的是如何設(shè)計(jì)網(wǎng)站架構(gòu)使得其能夠快速響應(yīng)需求變化。主要衡量標(biāo)準(zhǔn)是:

擴(kuò)展性架構(gòu)的主要手段是事件驅(qū)動(dòng)分布式服務(wù)

3.5 安全性

網(wǎng)絡(luò)安全主要是保護(hù)網(wǎng)站不受惡意訪問和攻擊,保護(hù)網(wǎng)站的重要數(shù)據(jù)不被竊取。衡量標(biāo)準(zhǔn)是針對(duì)現(xiàn)存和潛在的各種攻擊和竊密手段,是否有可能的應(yīng)對(duì)策略。

四. 瞬時(shí)響應(yīng): 網(wǎng)站的高性能架構(gòu)

4.1 性能指標(biāo)

1.響應(yīng)時(shí)間:指應(yīng)用執(zhí)行一個(gè)操作需要的時(shí)間,包括從發(fā)出請(qǐng)求開始到收到最后響應(yīng)數(shù)據(jù)所需要的時(shí)間。

2.并發(fā)數(shù): 系統(tǒng)能夠同時(shí)處理請(qǐng)求的數(shù)據(jù),也反映了系統(tǒng)的負(fù)載特性。

3.吞吐量: 指單位時(shí)間內(nèi)系統(tǒng)處理的請(qǐng)求數(shù)量,提現(xiàn)系統(tǒng)的整體處理能力。如:“請(qǐng)求數(shù)/秒”、“頁面數(shù)/秒”。

4.性能測(cè)試器: 描述服務(wù)器或操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo),包括System Load、對(duì)象與線程數(shù)、內(nèi)存使用、CPU使用、磁盤和網(wǎng)絡(luò)I/O等指標(biāo)。

4.2 性能測(cè)試方法

性能測(cè)試反應(yīng)系統(tǒng)在實(shí)際生產(chǎn)環(huán)境中使用時(shí),隨著用戶并發(fā)訪問數(shù)量的增加,系統(tǒng)的處理能力。與性能對(duì)應(yīng)的是用戶訪問的等待時(shí)間(系統(tǒng)響應(yīng)時(shí)間)。

  1. 性能測(cè)試: 對(duì)系統(tǒng)設(shè)計(jì)初期規(guī)劃的性能指標(biāo)為預(yù)期目標(biāo),對(duì)系統(tǒng)不斷施加壓力,驗(yàn)證系統(tǒng)在資源可接受范圍內(nèi)是否達(dá)到性能預(yù)期。
  2. 負(fù)載壓力: 對(duì)系統(tǒng)不斷增加并發(fā)請(qǐng)求以增加系統(tǒng)壓力,直到系統(tǒng)的某項(xiàng)或多項(xiàng)性能達(dá)到安全臨界值。如某種資源已經(jīng)飽和狀態(tài),這時(shí)繼續(xù)對(duì)系統(tǒng)施加壓力,系統(tǒng)的處理能力不但不能提高,反而下降。目的是找到系統(tǒng)最大負(fù)載點(diǎn)。
  3. 壓力測(cè)試: 超過安全負(fù)載的情況下,對(duì)系統(tǒng)繼續(xù)施加壓力,直到系統(tǒng)崩潰或不能再處理任何請(qǐng)求,以此獲得系統(tǒng)最大壓力承受能力。找到系統(tǒng)的崩潰點(diǎn)。
  4. 穩(wěn)定性測(cè)試: 被測(cè)試系統(tǒng)在特定硬件、軟件、網(wǎng)絡(luò)環(huán)境下,給系統(tǒng)加載一定業(yè)務(wù)壓力,使系統(tǒng)運(yùn)行一段較長(zhǎng)時(shí)間,以此檢測(cè)系統(tǒng)是否穩(wěn)定。

4.3 web前端性能優(yōu)化

1.瀏覽器訪問優(yōu)化

2.CDN加速:本質(zhì)上是一個(gè)緩存

3.反向代理

4.4 應(yīng)用服務(wù)器性能優(yōu)化

應(yīng)用服務(wù)器是處理網(wǎng)站業(yè)務(wù)的服務(wù)器,其主要優(yōu)化手段有緩存、集群、異步等。

1. 分布式緩存

緩存指將數(shù)據(jù)存儲(chǔ)在相對(duì)較高訪問速度的存儲(chǔ)介質(zhì)中,以供系統(tǒng)處理,緩存的本質(zhì)是一個(gè)內(nèi)存Hash表,讀寫時(shí)間復(fù)雜度為O(1)。緩存有以下優(yōu)點(diǎn):

緩存主要用來存儲(chǔ)那些讀寫比很高、很少變化的數(shù)據(jù)。應(yīng)當(dāng)合理使用緩存:

緩存雪崩本質(zhì)是一些訪問請(qǐng)求不經(jīng)過Redis而突然全部請(qǐng)求到數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)庫壓力陡增,造成壓力太大而宕機(jī)。 一般有兩種原因?qū)е拢?/blockquote>
  1. 緩存服務(wù)崩潰或不存在備庫,某臺(tái)緩存服務(wù)器掛了。----解決方案是冗余、熱備服務(wù)器。
  2. 很多緩存數(shù)據(jù)都設(shè)置了相同的過期時(shí)間,導(dǎo)致緩存在某一時(shí)刻同時(shí)失效,請(qǐng)求全部轉(zhuǎn)發(fā)到DB,DB瞬時(shí)壓力過重雪崩。 -----解決方案:將緩存失效時(shí)間分散開(因過期時(shí)間)
分布式緩存架構(gòu)分為兩種:

  • 以Jboss Cache為代表的需要更新同步的分布式緩存。Jboss Cache通常將應(yīng)用程序和緩存部署在同一臺(tái)服務(wù)器上,可快速獲取數(shù)據(jù),但這種方式緩存數(shù)據(jù)量受限單一服務(wù)器內(nèi)存空間。
  • 以memcached為代表的不互相通信的分布式緩存。Memcached采用集中式的緩存集群管理,緩存和應(yīng)用部署分離,緩存服務(wù)器之間不互相通信(提高可伸縮性)。應(yīng)用程序通過一致性Hash等路由算法選擇緩存服務(wù)器遠(yuǎn)程訪問緩存數(shù)據(jù)。
遠(yuǎn)程通信設(shè)計(jì)需要考慮兩個(gè)元素:

  • 通信協(xié)議: 選擇TCP還是UDP、或者HTTP。
  • 通信序列化協(xié)議: 數(shù)據(jù)傳輸?shù)膬啥?,必須使用彼此可識(shí)別的數(shù)據(jù)序列化方式才能使通信得以完成。如XML、JSON、Protobuffer等。
Memcached采用TCP協(xié)議,其序列化協(xié)議則是一套基于文本的自定義協(xié)議,以命令關(guān)鍵字開頭,后面是一組命令字操作數(shù)。

有好東西,一定想著大家。我是愛分享的Linux技術(shù)狂。大家記得關(guān)注我,也不要忘記點(diǎn)贊、評(píng)論、收藏。

同時(shí)也可以點(diǎn)擊 正在跳轉(zhuǎn) 我們?cè)谶@里一起學(xué)習(xí)、一起進(jìn)步,或者點(diǎn)擊 C/C++Linux服務(wù)器開發(fā)/后臺(tái)架構(gòu)師 免費(fèi)訂閱一下(每晚20點(diǎn)免費(fèi)直播學(xué)習(xí)),多一點(diǎn)知識(shí),多一份收獲,更多一點(diǎn)工資。

2. 異步操作

使用消息隊(duì)列調(diào)用異步化,可改善網(wǎng)站的擴(kuò)展性,還可以改善網(wǎng)站的性能。

  • 消息隊(duì)列提高生產(chǎn)者響應(yīng)速度:寫入消息隊(duì)列后可立即返回。
  • 消息隊(duì)列具有很好的削峰作用:通過異步處理、將短時(shí)間高并發(fā)產(chǎn)生的事務(wù)消息存儲(chǔ)在消息隊(duì)列中,從而削平高峰期的并發(fā)事務(wù)。
  • 生成者與消費(fèi)者的解耦:可避免生成者與消費(fèi)者的強(qiáng)耦合。
  • 可擴(kuò)展: 可以增加消費(fèi)者訂閱消息來完成新的業(yè)務(wù)邏輯擴(kuò)展,無需改動(dòng)原有邏輯。
  • 可伸縮性: 異步消費(fèi)隊(duì)列解耦生產(chǎn)者和消費(fèi)者,消費(fèi)者之間是對(duì)等關(guān)系,可以通過合理增加消費(fèi)者提高消息處理性能。

3. 使用集群

使用負(fù)載均衡技術(shù)為一個(gè)應(yīng)用構(gòu)建一個(gè)由多臺(tái)服務(wù)器組成的服務(wù)器集群,將并發(fā)訪問請(qǐng)求分發(fā)到多臺(tái)服務(wù)器上處理,避免單一服務(wù)器因負(fù)載壓力過大而響應(yīng)緩慢,使用戶請(qǐng)求具有更好的響應(yīng)延遲特性。

4. 代碼優(yōu)化

合理優(yōu)化業(yè)務(wù)代碼,可以很好地改善網(wǎng)站性能。

  1. 使用多線程,提高并行處理能力。
  2. 資源復(fù)用:要盡量減少那些開銷很大的資源的創(chuàng)建和消費(fèi),提高響應(yīng)速度和減少資源開銷。資源復(fù)用主要兩種模式:單例(數(shù)據(jù)源、Dao等)和對(duì)象池(數(shù)據(jù)庫連接池、線程池、通信連接池等)
  3. 數(shù)據(jù)結(jié)構(gòu)和算法:使用合理的數(shù)據(jù)結(jié)構(gòu)和算法有利于提高代碼性能。
  4. 垃圾回收: 通過程序調(diào)優(yōu)、參數(shù)調(diào)優(yōu)來提高垃圾回收性能。

5. 存儲(chǔ)優(yōu)化

  1. 機(jī)械鍵盤: 通過馬達(dá)驅(qū)動(dòng)頭臂帶動(dòng)磁頭到指定的磁盤位置訪問數(shù)據(jù)。數(shù)據(jù)連續(xù)訪問和隨機(jī)訪問移動(dòng)次數(shù)相差巨大,性能表現(xiàn)也比較差。
  2. 固態(tài)硬盤: 沒有機(jī)械裝置,存儲(chǔ)在在可記憶的硅晶體上,可以像內(nèi)存一樣快速隨機(jī)訪問。
  3. B+樹: 為了改善數(shù)據(jù)訪問特性,加快速度檢索速度,需要保證數(shù)據(jù)在不斷更新、插入、刪除后依然有序,傳統(tǒng)的做法采用+樹。
  4. LSM: 可以看作是一個(gè)N階合并樹。數(shù)據(jù)寫操作(包括插入、修改、刪除)都在內(nèi)存進(jìn)行,并且創(chuàng)建一個(gè)新記錄。(修改會(huì)記錄新的數(shù)據(jù)值,刪除會(huì)記錄一個(gè)刪除標(biāo)志),這些數(shù)據(jù)在內(nèi)存中仍然是一顆排序樹,當(dāng)數(shù)據(jù)量超過設(shè)定的內(nèi)存閾值后,會(huì)將這棵排序樹和磁盤最新的排序樹合并。當(dāng)這棵排序樹的數(shù)據(jù)量超過設(shè)定閾值后和磁盤上的下一級(jí)排序樹合并。合并過程中會(huì)使用最新更新的數(shù)據(jù)覆蓋舊的數(shù)據(jù)。在需要進(jìn)行讀操作時(shí),總是從內(nèi)存中的排序樹開始搜索。如果沒有找到,就從磁盤上的排序樹順序查找。
  5. RAID
  • RAID0: 數(shù)據(jù)從內(nèi)存緩沖區(qū)寫入磁盤時(shí),根據(jù)磁盤數(shù)量降數(shù)據(jù)分為N份,這些數(shù)據(jù)同時(shí)并發(fā)寫入N塊磁盤。
  • RAID1: 將一份數(shù)據(jù)同時(shí)寫入兩塊磁盤,任何一塊損壞都不會(huì)導(dǎo)致數(shù)據(jù)丟失,具有極高的可靠性。
  • RAID10: 結(jié)合RAID0和RAID1兩種方案,將所有磁盤平均分為兩份,數(shù)據(jù)同時(shí)在兩份磁盤寫入,相當(dāng)于RAID1。在每一份磁盤里面的將數(shù)據(jù)分為N/2份并行寫入N/2個(gè)磁盤中,提供性能。類似kafka的消費(fèi)組和消費(fèi)者的設(shè)計(jì)理念。
  • RAID3: 將數(shù)據(jù)寫入N-1份,并發(fā)寫入N-1塊磁盤。并在第N塊磁盤記錄校驗(yàn)值用于恢復(fù),容易導(dǎo)致第N塊磁盤損壞。
  • RAID5: 和RAID3很類似,但校驗(yàn)數(shù)據(jù)是采用螺旋式寫入所有磁盤中,避免頻繁寫壞一塊磁盤。
  • RAID6: 和RAID5類似,但數(shù)據(jù)只寫入N-2塊磁盤,并螺旋式地在兩塊磁盤中寫入校驗(yàn)信息。
6.HDFS: 按塊(block)為基本單位存儲(chǔ),一個(gè)塊數(shù)據(jù)三個(gè)備份。

五. 高可用架構(gòu)

5.1 高可用架構(gòu)

可用性度量:4個(gè)9

網(wǎng)站不可用時(shí)間(故障時(shí)間)= 故障修復(fù)時(shí)間點(diǎn) - 故障發(fā)現(xiàn)(報(bào)告)時(shí)間點(diǎn) 網(wǎng)站年度可用指標(biāo) = (1 - 網(wǎng)站不可用時(shí)間/年度總時(shí)間) * 100%
  • 2個(gè)9基本可用,不可用時(shí)間小于88小時(shí)
  • 3個(gè)9較高可用,不可用時(shí)間小于9小時(shí)
  • 4個(gè)9具有自動(dòng)恢復(fù)能力的高可用,不可用時(shí)間小于53分鐘。
  • 5個(gè)9極高可用性,不可用時(shí)間小于5分鐘。
高可用架構(gòu)設(shè)計(jì)的目的就是抱著服務(wù)器硬件故障時(shí)服務(wù)器依然可用、數(shù)據(jù)依然保存并能夠被訪問。主要的手段是數(shù)據(jù)和服務(wù)的冗余備份及失效轉(zhuǎn)移

  • 位于應(yīng)用層的服務(wù)器:通過負(fù)載均衡設(shè)備將一組服務(wù)器組成一個(gè)集群共同對(duì)外提供服務(wù),當(dāng)負(fù)載均衡設(shè)備通過心跳檢測(cè)手段檢測(cè)應(yīng)用服務(wù)器不可用時(shí),將將其從集群列表剔除。應(yīng)用的高可用架構(gòu)設(shè)計(jì)是基于服務(wù)的無狀態(tài)特性,所謂無狀態(tài)是服務(wù)器不保存業(yè)務(wù)的上下文信息,多個(gè)服務(wù)器之間完全對(duì)等。
  • 位于服務(wù)層的服務(wù)器:通過集群實(shí)現(xiàn)高可用,通過分布式服務(wù)調(diào)用框架訪問并在客戶端程序中實(shí)現(xiàn)軟件負(fù)載均衡(如dubbo),并通過注冊(cè)中心對(duì)提供服務(wù)的服務(wù)器進(jìn)行心跳檢測(cè)。
  • 位于數(shù)據(jù)層的服務(wù)器:數(shù)據(jù)寫入時(shí)進(jìn)行數(shù)據(jù)同步復(fù)制,將數(shù)據(jù)寫入多臺(tái)實(shí)現(xiàn)冗余備份

1 高可用應(yīng)用

集群中的session管理方式:

  • session復(fù)制:在集群中的幾臺(tái)服務(wù)器之間同步session對(duì)象--占用服務(wù)器和網(wǎng)絡(luò)的大量資源。
  • session綁定:利用負(fù)載均衡的源地址Hash算法實(shí)現(xiàn),將源于同一個(gè)IP請(qǐng)求分發(fā)到同一臺(tái)服務(wù)器上。----不符合高可用需求
  • 利用cookie記錄Session: 將session記錄存放在客戶端,每次請(qǐng)求的時(shí)候?qū)ession發(fā)送給服務(wù)器,服務(wù)器修改完成后發(fā)給客戶端。缺點(diǎn)是:
    • 受cookie大小限制
    • 每次需要傳輸Cookie,影響性能
  • session服務(wù)器:利用獨(dú)立部署的session服務(wù)器統(tǒng)一管理session, 解決應(yīng)用服務(wù)器的狀態(tài)分離。簡(jiǎn)單方式:分布式緩存、數(shù)據(jù)庫等。

2 高可用服務(wù)

也是基于服務(wù)的無狀態(tài),還有幾點(diǎn)高可用服務(wù)策略:

  • 分級(jí)管理:核心應(yīng)用和服務(wù)區(qū)分對(duì)待,應(yīng)用部署進(jìn)行必要隔離。
  • 超時(shí)設(shè)置:如果用戶請(qǐng)求長(zhǎng)時(shí)間得不到響應(yīng),會(huì)占用應(yīng)用程序資源,不利于及時(shí)將訪問請(qǐng)求轉(zhuǎn)移到正常服務(wù)器上。
  • 異步調(diào)用:通過消息隊(duì)列異步方式完成,避免一個(gè)服務(wù)失敗導(dǎo)致整個(gè)應(yīng)用請(qǐng)求失敗的情況。
  • 服務(wù)降級(jí)拒絕服務(wù)(拒絕低優(yōu)先級(jí)應(yīng)用的調(diào)用,減少服務(wù)并發(fā)數(shù))和關(guān)閉功能(關(guān)閉不重要的功能,節(jié)約系統(tǒng)開銷)。
  • 冪等性控制:保證服務(wù)重復(fù)調(diào)用和調(diào)用一次產(chǎn)生的結(jié)果相同。

3 高可用數(shù)據(jù)

高可用數(shù)據(jù)有以下幾個(gè)層面的含義:

  • 數(shù)據(jù)持久性:保證數(shù)據(jù)可持久存儲(chǔ),在各種情況下都不會(huì)出現(xiàn)數(shù)據(jù)丟失的問題。
  • 數(shù)據(jù)可訪問性:在多份數(shù)據(jù)副本分別存放在不同存儲(chǔ)設(shè)備的情況下,如果一個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備損壞,就需要將數(shù)據(jù)訪問切換到另一個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備上。
  • 數(shù)據(jù)一致性:多個(gè)副本數(shù)據(jù)保持一致。
保證數(shù)據(jù)存儲(chǔ)的高可用手段主要有數(shù)據(jù)備份失效轉(zhuǎn)移機(jī)制。

  • 數(shù)據(jù)備份分為冷備份(定期備份)和熱備份(主從復(fù)制),數(shù)據(jù)熱備的方式存在兩種異步備份方式同步備份方式
    • 異步備份:寫入一份數(shù)據(jù)后,系統(tǒng)將異步向其他副本寫入數(shù)據(jù)。
    • 同步備份:多份數(shù)據(jù)副本的寫入操作同步完成,為了提供性能應(yīng)用程序客戶端并發(fā)向多個(gè)存儲(chǔ)服務(wù)同時(shí)寫入數(shù)據(jù),然后等待所有存儲(chǔ)服務(wù)器都返回操作成功的響應(yīng)后,在通知應(yīng)用程序?qū)懖僮鞒晒Α?/li>
  • 失效轉(zhuǎn)移操作由三個(gè)部分組成:
    • 失效確認(rèn):系統(tǒng)確認(rèn)一臺(tái)服務(wù)器是否宕機(jī),常用手段有心跳檢測(cè)應(yīng)用程序失敗報(bào)告
    • 訪問轉(zhuǎn)移:確認(rèn)某臺(tái)數(shù)據(jù)存儲(chǔ)服務(wù)器宕機(jī)后,需要將數(shù)據(jù)讀寫訪問重新路由到其他服務(wù)器上。
    • 數(shù)據(jù)恢復(fù):將宕機(jī)服務(wù)器進(jìn)行恢復(fù),需要從健康服務(wù)器復(fù)制數(shù)據(jù),將數(shù)據(jù)副本恢復(fù)到設(shè)定值。
CAP原理:系統(tǒng)無法同時(shí)滿足數(shù)據(jù)一致性(Consistency)、數(shù)據(jù)可用性(Availability)和分區(qū)耐受性(Partition Tolerance,系統(tǒng)具有跨網(wǎng)絡(luò)分區(qū)的伸縮性)

數(shù)據(jù)一致性分為如下幾點(diǎn):

  • 數(shù)據(jù)強(qiáng)一致:各個(gè)副本數(shù)據(jù)在物理上總是保持一致。
  • 數(shù)據(jù)用戶一致:各個(gè)副本可能不一致,但終端用戶訪問時(shí)通過糾錯(cuò)和校驗(yàn)機(jī)制,確定一個(gè)一致的且正確的數(shù)據(jù)返回給用戶。
  • 數(shù)據(jù)最終一致:各副本不一致,通過系統(tǒng)一段時(shí)間的自我修復(fù)和修正,數(shù)據(jù)最終會(huì)打到一致。

5.2 軟件質(zhì)量保證

網(wǎng)站發(fā)布

  1. 網(wǎng)站發(fā)布
  2. 自動(dòng)化測(cè)試
  3. 預(yù)發(fā)布驗(yàn)證:預(yù)發(fā)布服務(wù)器是一種特殊的服務(wù)器,它和線上的正式服務(wù)器唯一的不同就是沒有配置在負(fù)載均衡服務(wù)器上,外部用戶無法訪問。
  4. 代碼控制:主干開發(fā)分支發(fā)布和分支開發(fā)主干發(fā)布。
  5. 自動(dòng)化發(fā)布:采用火車模型,將每個(gè)應(yīng)用的發(fā)布過程看做一次火車旅程,火車定點(diǎn)運(yùn)行,期間有若干站點(diǎn),每一站都進(jìn)行例行檢查,不通過的項(xiàng)目下車,剩下的項(xiàng)目繼續(xù)坐火車旅行,直到終點(diǎn)。
  6. 灰度發(fā)布:將集群分為若干部分,每天只發(fā)布一部分服務(wù)器,觀察運(yùn)行穩(wěn)定沒有故障,第二天繼續(xù)發(fā)布一部分服務(wù)器,如果有問題則回滾。

運(yùn)行監(jiān)控

  1. 日志采集
  • 用戶行為日志
    • 服務(wù)器端日志收集
    • 客戶端瀏覽器日志收集
  • 服務(wù)器性能監(jiān)控
  • 運(yùn)行數(shù)據(jù)報(bào)告
  • 監(jiān)控管理
    • 系統(tǒng)報(bào)警
    • 失效轉(zhuǎn)移:
    • 自動(dòng)優(yōu)雅降級(jí):主動(dòng)關(guān)閉部分功能,釋放部分系統(tǒng)資源,保證網(wǎng)站核心功能正常訪問的一個(gè)手段。

    六. 網(wǎng)站的伸縮性架構(gòu)

    所謂的伸縮性是指不需要改變網(wǎng)站的軟硬件設(shè)計(jì),僅僅通過改變部署的服務(wù)器數(shù)量就可以擴(kuò)大或縮小網(wǎng)站的服務(wù)處理能力。

    網(wǎng)站伸縮性設(shè)計(jì)可分為兩類:

    • 根據(jù)功能進(jìn)行物理分離實(shí)現(xiàn)伸縮----分布式
      • 縱向分離(分層):將業(yè)務(wù)處理流程上不同的部分分離部署,實(shí)現(xiàn)系統(tǒng)伸縮性。
      • 橫向分離: 將不同業(yè)務(wù)模塊分離部署,實(shí)現(xiàn)系統(tǒng)伸縮性。
    • 單一功能通過集群實(shí)現(xiàn)伸縮---集群
      • 將相同服務(wù)部署在多臺(tái)服務(wù)器上構(gòu)成一個(gè)集群整體對(duì)外提供服務(wù)。

    1. 應(yīng)用服務(wù)器集群的伸縮性設(shè)計(jì)

    應(yīng)用服務(wù)器應(yīng)該設(shè)置為無狀態(tài),任何一臺(tái)服務(wù)器的處理結(jié)果都是相同的。這樣用戶請(qǐng)求按照某種規(guī)則分發(fā)到集群的不同服務(wù)器上,可構(gòu)成一個(gè)應(yīng)用服務(wù)器集群。常用的負(fù)載均衡設(shè)備有:

    • Http 重定向負(fù)載均衡:根據(jù)用戶的HTTP請(qǐng)求計(jì)算一臺(tái)真實(shí)的Web服務(wù)器地址,并將該Web服務(wù)器地址寫入HTTP重定向響應(yīng)中(響應(yīng)302)返回瀏覽器,瀏覽器重新發(fā)起請(qǐng)求到實(shí)際物理服務(wù)器。
      • 缺點(diǎn):
        • 瀏覽器需要兩次請(qǐng)求服務(wù)器才能完成一次訪問,性能較差。
        • 重定向服務(wù)器自身的處理能力有可能成為瓶頸,整個(gè)集群伸縮性有限。
    • DNS域名解析負(fù)載均衡:每次根據(jù)負(fù)載均衡算法計(jì)算一個(gè)不同的IP地址返回給瀏覽器,瀏覽器根據(jù)這個(gè)IP地址訪問真實(shí)物理地址。
      • 優(yōu)點(diǎn):
        • 將負(fù)載均衡工作交給DNS,省掉了網(wǎng)站管理維護(hù)負(fù)載均衡服務(wù)器的麻煩。
        • 同時(shí)還支持基于地理位置的域名解析,即將域名解析成距離用戶地理最近的一個(gè)服務(wù)器地址,這樣可以加快用戶訪問速度,改善性能。
      • 缺點(diǎn):采用多級(jí)解析,域名解析更新后不能立即生效,到時(shí)用戶訪問失敗
    • 反向代理負(fù)載均衡: 方向代理服務(wù)器處于web服務(wù)器前面,瀏覽器請(qǐng)求的地址是方向代理服務(wù)器的地址,方向代理收到請(qǐng)求后,根據(jù)負(fù)載均衡算法計(jì)算到一臺(tái)真實(shí)物理服務(wù)器地址。
      • 缺點(diǎn):反向代理服務(wù)器是所有請(qǐng)求和響應(yīng)的中轉(zhuǎn)站,其性能可能會(huì)成為瓶頸。
    • IP負(fù)載均衡:用戶請(qǐng)求包到達(dá)負(fù)載均衡服務(wù)器后,獲取網(wǎng)絡(luò)數(shù)據(jù)包,根據(jù)負(fù)載均衡算法計(jì)算得到一臺(tái)真實(shí)WEB服務(wù)區(qū)地址,然后將數(shù)據(jù)局目的IP修改為該地址。響應(yīng)地址到達(dá)負(fù)載均衡服務(wù)器后,負(fù)載均衡服務(wù)器再將數(shù)據(jù)包源地址修改為自身的IP地址。
    • 數(shù)據(jù)鏈路層均衡負(fù)載: 數(shù)據(jù)鏈路層負(fù)載均衡是在通訊協(xié)議的數(shù)據(jù)鏈路層修改mac地址進(jìn)行負(fù)載均衡。這種傳輸方式成為三角傳輸模式,只修改mac地址,不修改數(shù)據(jù)包的原地址和目的地址而達(dá)到轉(zhuǎn)發(fā)目的。目前大型網(wǎng)站使用的比較多,最好的開源產(chǎn)品是LVS(Linux Virtual Server)
    負(fù)載均衡算法:

    • 輪詢(Round Robin, RR)
    • 加權(quán)輪詢(Weighted Round Robin, WRR): 按照配置的權(quán)重將請(qǐng)求分發(fā)到每個(gè)服務(wù)器。
    • 隨機(jī)(Random): 也可以使用加權(quán)隨機(jī)算法。
    • 最少連接(Least Connections): 記錄每個(gè)應(yīng)用服務(wù)器正在處理的連接數(shù),將新到的請(qǐng)求分發(fā)到最少連接的服務(wù)器上。
    • 源地址散列: 根據(jù)請(qǐng)求來源的IP地址進(jìn)行Hash計(jì)算,得到應(yīng)用服務(wù)器,這樣來自同一個(gè)IP地址的請(qǐng)求總在同一個(gè)服務(wù)器上處理。
    • 一致性Hash算法

    2. 分布式緩存集群的伸縮性設(shè)計(jì)

    和應(yīng)用服務(wù)器集群不同,分布式緩存服務(wù)器集群中不同服務(wù)器緩存的數(shù)據(jù)各不相同,是不對(duì)等的,緩存訪問請(qǐng)求不可以在緩存服務(wù)器集群中的任意一臺(tái)處理,必須找到緩存有需要數(shù)據(jù)的服務(wù)器,才能訪問。這個(gè)特點(diǎn)嚴(yán)重制約了分布式緩存集群的伸縮性設(shè)計(jì)。

    分布式緩存集群伸縮性設(shè)計(jì)的最主要目標(biāo):新上線的緩存服務(wù)器對(duì)真?zhèn)€分布式緩存集群影響最小,即新加入緩存服務(wù)器后應(yīng)使得整個(gè)服務(wù)器集群已經(jīng)緩存的數(shù)據(jù)盡可能被訪問到。

    • Mecheched采用一致性hash算法
    • Redis采用reshard和rebalance

    3. 數(shù)據(jù)存儲(chǔ)服務(wù)器集群的伸縮性設(shè)計(jì)

    關(guān)系數(shù)據(jù)庫可以使用伸縮性主要有兩種:

    1. 主從讀寫分離
    2. 數(shù)據(jù)庫分庫:將不同業(yè)務(wù)數(shù)據(jù)庫表部署在不同的數(shù)據(jù)庫集群上,可以使用分布式關(guān)系數(shù)據(jù)庫訪問代理Cobar
    Cobar伸縮性:

    • Cobar服務(wù)器集群的伸縮性:因?yàn)镃obar是無狀態(tài)的應(yīng)用服務(wù)器,因此可以使用集群伸縮來實(shí)現(xiàn)負(fù)載均衡。
    • MySql服務(wù)器集群的伸縮:采用一致性Hash進(jìn)行數(shù)據(jù)遷移,遷移是以schema為單位
    NoSql集群放棄了關(guān)系數(shù)據(jù)庫以關(guān)系代數(shù)為基礎(chǔ)的結(jié)構(gòu)化查詢語言(SQL)和事務(wù)一致性保證(ACID),強(qiáng)化了高可用性可伸縮性

    七.網(wǎng)站的可擴(kuò)展性架構(gòu)

    擴(kuò)展性是一種開發(fā)封閉的設(shè)計(jì)原則,指對(duì)現(xiàn)有系統(tǒng)影響最小的情況下,系統(tǒng)功能可持續(xù)擴(kuò)展或提升的能力。

    構(gòu)造可擴(kuò)展的網(wǎng)站架構(gòu)有兩種方式:

    1. 基于事件驅(qū)動(dòng)架構(gòu)----利用分布式消息隊(duì)列降低耦合性
    2. 基于分布集群架構(gòu)----水平拆分和縱向拆分
    • 縱向拆分:將一個(gè)大應(yīng)用拆分為多個(gè)小應(yīng)用,各應(yīng)用相對(duì)獨(dú)立
    • 橫向拆分: 將復(fù)用的業(yè)務(wù)拆處理啊,獨(dú)立部署為分布式服務(wù)。
    很多功能集中在一個(gè)模塊中的問題:

    1. 編譯、部署困難----慢
    2. 代碼分支管理困難----多人開發(fā)、沖突多
    3. 數(shù)據(jù)庫連接耗盡
    4. 新增業(yè)務(wù)困難---修改一行對(duì)其他影響都很大
    分布式服務(wù)框架還需支持如下特性:

    1. 負(fù)載均衡
    2. 失效轉(zhuǎn)移
    3. 高效的遠(yuǎn)程通信
    4. 整合異構(gòu)系統(tǒng)
    5. 對(duì)應(yīng)用最小侵入
    6. 版本管理
    7. 實(shí)時(shí)監(jiān)控

    八. 網(wǎng)站的安全架構(gòu)

    常見攻擊手段:

    • XSS攻擊:跨站點(diǎn)腳本攻擊,通過篡改頁面,注入惡意HTML腳本,在用戶瀏覽器頁面時(shí),控制用戶瀏覽器進(jìn)行惡意操作的一種攻擊方式。
    • 注入攻擊:如SQL注入和OS注入攻擊
    • CSRF:跨站點(diǎn)請(qǐng)求偽造,攻擊者通過跨站請(qǐng)求,以合法用戶身份進(jìn)行非法操作。其核心是利用瀏覽器Cookie或服務(wù)器Session策略盜取用戶身份。
    • 其他攻擊和漏洞
      • Error Code: 錯(cuò)誤回顯,應(yīng)該避免
      • HTML注釋
      • 文件上傳:設(shè)置上傳文件白名單,只允許上傳可靠的文件類型。
      • 路徑遍歷:利用請(qǐng)求的URL中使用相對(duì)路徑,遍歷系統(tǒng)未開放的目錄和文件。
    防御手段:

    • 信息加密和密鑰安全管理
      • 單向散列加密: 通過對(duì)不同輸入長(zhǎng)度的信息進(jìn)行散列計(jì)算,得到固定長(zhǎng)度的輸出,這個(gè)散列計(jì)算過程是單向的,即不能對(duì)固定長(zhǎng)度的輸出進(jìn)行計(jì)算從而獲得輸入信息。---可以用于密碼保護(hù),密碼校驗(yàn)等。常用的有MD5、SHA等。
      • 對(duì)稱加密:加密和解密使用的秘鑰是同一個(gè)秘鑰。---通常用在信息需要安全交換或存儲(chǔ)的場(chǎng)合。
        • 優(yōu)點(diǎn):算法簡(jiǎn)單、加密效率高,系統(tǒng)開銷小。
        • 缺點(diǎn):如果秘鑰丟失,信息不安全。
      • 非對(duì)稱加密
        • 使用不同的秘鑰不是同一個(gè)秘鑰,其中對(duì)外公布的稱為公鑰,只有所有知道的稱為秘鑰。用公鑰加密的信息必須用私鑰才能解開,反之用私鑰加密的信息只有公鑰才能解開。常見的算法是RSA。
      • 密鑰安全
        • 把密鑰和算法放在一個(gè)獨(dú)立的服務(wù)器上,甚至做成一個(gè)專用的硬件設(shè)施。
        • 將加密算法放在應(yīng)用系統(tǒng)中,密鑰則放在獨(dú)立服務(wù)器中,提高密鑰的安全性。
    • 信息過濾和反垃圾
      • 文本匹配
      • 分類算法
      • 黑名單
    • 風(fēng)險(xiǎn)控制
      • 風(fēng)險(xiǎn)
        • 賬戶風(fēng)險(xiǎn):包括賬戶被黑客盜用,惡意注冊(cè)賬號(hào)等情景
        • 買家風(fēng)險(xiǎn):買家惡意下單占用庫存進(jìn)行不正當(dāng)競(jìng)爭(zhēng)。
        • 賣家風(fēng)險(xiǎn):不良賣家進(jìn)行惡意欺詐行為
        • 交易風(fēng)險(xiǎn):信用卡盜刷,支付欺詐,洗錢。
      • 風(fēng)控
        • 規(guī)則引擎
        • 統(tǒng)計(jì)模型
    有好東西,一定想著大家。我是愛分享的Linux技術(shù)狂。大家記得關(guān)注我,也不要忘記點(diǎn)贊、評(píng)論、收藏。

    同時(shí)也可以點(diǎn)擊 正在跳轉(zhuǎn) 我們?cè)谶@里一起學(xué)習(xí)、一起進(jìn)步,或者點(diǎn)擊 C/C++Linux服務(wù)器開發(fā)/后臺(tái)架構(gòu)師 免費(fèi)訂閱一下(每晚20點(diǎn)免費(fèi)直播學(xué)習(xí)),多一點(diǎn)知識(shí),多一份收獲,更多一點(diǎn)工資。







    關(guān)鍵詞:組成,大型

    74
    73
    25
    news

    版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

    為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
    關(guān)閉