中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站建設(shè)的結(jié)論和體會百度推廣營銷中心

網(wǎng)站建設(shè)的結(jié)論和體會,百度推廣營銷中心,網(wǎng)站開發(fā)公司會計,網(wǎng)站空間維護(hù)目錄 1.限流 2.緩存 2.1.緩存的使用場景 3.降級 3.1.什么是降級? 3.2.服務(wù)降級方式 4.其他高并發(fā)手段 4.1. 集群 4.2.拆分 4.2.1 應(yīng)用拆分 4.2.2 數(shù)據(jù)庫 4.3. 靜態(tài)化 4.4.削峰 4.5.限流 5.總結(jié) 參考 保護(hù)高并發(fā)系統(tǒng)的三大利器:限流、熔…

目錄

1.限流

2.緩存

2.1.緩存的使用場景

3.降級

3.1.什么是降級?

3.2.服務(wù)降級方式

4.其他高并發(fā)手段?

4.1. 集群

4.2.拆分

4.2.1 應(yīng)用拆分

4.2.2 數(shù)據(jù)庫

4.3. 靜態(tài)化

4.4.削峰

4.5.限流

5.總結(jié)

參考


保護(hù)高并發(fā)系統(tǒng)的三大利器:限流、熔斷降級、緩存

  • 限流:控制系統(tǒng)的請求量,防止系統(tǒng)被過度壓力而崩潰。
  • 緩存:將一些常用的數(shù)據(jù)存儲在內(nèi)存中,減輕數(shù)據(jù)庫的壓力,提高系統(tǒng)的響應(yīng)速度。
  • 降級:當(dāng)系統(tǒng)不能承受更多的請求時,可以有意識地關(guān)閉一些不必要的功能或服務(wù),以保證核心功能的正常運(yùn)行。

1.限流

????????限流是保護(hù)高并發(fā)系統(tǒng)的三把利器之一。限流在很多場景中用來限制并發(fā)和請求量。實現(xiàn)系統(tǒng)限流的方式有很多種,比如令牌桶算法、漏桶算法等。

采用限流策略來控制用戶的請求速率

限流常用的幾種算法

1)計數(shù)器限流

你要是仔細(xì)看了上面的內(nèi)容,就會發(fā)現(xiàn)上面舉例的每秒閾值1000的那個例子就是一個計數(shù)器限流的思想,計數(shù)器限流的本質(zhì)是一定時間內(nèi),訪問量到達(dá)設(shè)置的限制后,在這個時間段沒有過去之前,超過閾值的訪問量拒絕處理,舉個例,你告訴老板我一個小時只處理10件事,這是你的處理能力,但領(lǐng)導(dǎo)半個小內(nèi)就斷續(xù)斷續(xù)給你分派了10件事,這時已經(jīng)到達(dá)你的極限了,在后面的半個小時內(nèi),領(lǐng)導(dǎo)再派出的活你是拒絕處理的,直到下一個小時的時間段開始。

2)漏斗限流

漏斗限流,意思是說在一個漏斗容器中,當(dāng)請求來臨時就從漏斗頂部放入,漏斗底部會以一定的頻率流出,當(dāng)放入的速度大于流出的速度時,漏斗的空間會逐漸減少為0,這時請求會被拒絕,其實就是上面開始時池塘流水的例子。流入速率是隨機(jī)的,流出速率是固定的,當(dāng)漏斗滿了之后,其實到了一個平滑的階段,因為流出是固定的,所以你流入也是固定的,相當(dāng)于請求是勻速通過的

2.緩存

2.1.緩存的使用場景

  • 經(jīng)常需要讀取的數(shù)據(jù)

  • 頻繁訪問的數(shù)據(jù)

  • 熱點(diǎn)數(shù)據(jù)緩存

  • IO 瓶頸數(shù)據(jù)

  • 計算昂貴的數(shù)據(jù)

  • 無需實時更新的數(shù)據(jù)

  • 緩存的目的是減少對后端服務(wù)的訪問,降低后端服務(wù)的壓力

?1)CDN 緩存

  • CDN?的全稱是?Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。CDN?是構(gòu)建在網(wǎng)絡(luò)之上的內(nèi)容分發(fā)網(wǎng)絡(luò),依靠部署在各地的邊緣服務(wù)器,通過中心平臺的負(fù)載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問響應(yīng)速度和命中率。CDN的關(guān)鍵技術(shù)主要有內(nèi)容存儲和分發(fā)技術(shù)。

  • CDN?它本身也是一個緩存,它把后端應(yīng)用的數(shù)據(jù)緩存起來,用戶要訪問的時候,直接從CDN?上獲取,不需要走后端的?Nginx,以及具體應(yīng)用服務(wù)器?Tomcat,它的作用主要是加速數(shù)據(jù)的傳輸,也提高穩(wěn)定性,如果從?CDN?上沒有獲取到數(shù)據(jù),再走后端的Nginx緩存,Nginx?上也沒有,則走后端的應(yīng)用服務(wù)器,CDN主要緩存靜態(tài)資

2)應(yīng)用緩存:

????????內(nèi)存緩存

????????????????在內(nèi)存中緩存數(shù)據(jù),效率高,速度快,應(yīng)用重啟緩存丟失

????????磁盤緩存

????????????????在磁盤緩存數(shù)據(jù),讀取效率跟內(nèi)存比較,磁盤緩存稍低,但應(yīng)用重啟緩存不會丟失3)

3)多級緩存

在整個應(yīng)用系統(tǒng)的不同層級進(jìn)行數(shù)據(jù)的緩存,多層次緩存,來提升訪問效率;比如:瀏覽器 -> CDN -> Nginx -> Redis -> DB (磁盤、文件系統(tǒng))

隨著業(yè)務(wù)的不斷增加,服務(wù)器性能很快又到達(dá)瓶頸

3.降級

降級的最終目的是保證核心服務(wù)可用,即使是有損的。而且有些服務(wù)是無法降級的

3.1.什么是降級?

服務(wù)降級是當(dāng)服務(wù)器壓力劇增的情況下,根據(jù)當(dāng)前業(yè)務(wù)情況及流量對一些服務(wù)和頁面有策略的降級,以此釋放服務(wù)器資源以保證核心任務(wù)的正常運(yùn)行。

3.2.服務(wù)降級方式

延遲服務(wù):定時任務(wù)處理、或者mq延時處理。

頁面降級:頁面點(diǎn)擊按鈕全部置灰,或者頁面調(diào)整成為一個靜態(tài)頁面顯示"系統(tǒng)正在維護(hù)中......"。

關(guān)閉非核心服務(wù):比如電商關(guān)閉推薦服務(wù)、關(guān)閉運(yùn)費(fèi)險、退貨退款等。保證主流程的核心服務(wù)下單付款就好。

寫降級:比如秒殺搶購,我們可以只進(jìn)行Cache的更新返回,然后通過mq異步扣減庫存到DB,保證最終一致性即可,此時可以將DB降級為Cache。

讀降級:比如多級緩存模式,如果后端服務(wù)有問題,可以降級為只讀緩存

4.其他高并發(fā)手段?

4.1. 集群

  • 有一個單體應(yīng)用,當(dāng)訪問流量很大無法支撐,那么可以集群部署,也叫單體應(yīng)用「水平擴(kuò)容」,原來通過部署一臺服務(wù)器提供服務(wù),現(xiàn)在就多部署幾臺,那么服務(wù)的能力就會提升。

  • 部署了多臺服務(wù)器,但是用戶訪問入口只能是一個,比如?www.evanshare.com,所以就需要?「負(fù)載均衡」,負(fù)載均衡是應(yīng)用集群擴(kuò)容后的必須步驟,集群部署后,用戶的會話?session?狀態(tài) 要保持的話,就需要實現(xiàn)?session?共享。

4.2.拆分

4.2.1 應(yīng)用拆分

應(yīng)用的拆分:分布式 (微服務(wù))

單體應(yīng)用,隨著業(yè)務(wù)的發(fā)展,應(yīng)用功能的增加,單體應(yīng)用就逐步變得非常龐大,很多人 維護(hù)這么一個系統(tǒng),開發(fā)、測試、上線都會造成很大問題,比如代碼沖突,代碼重復(fù),邏輯錯綜混亂,代碼邏輯復(fù)雜度增加,響應(yīng)新需求的速度降低,隱藏的風(fēng)險增大,所以需要按照?「業(yè)務(wù)維度進(jìn)行應(yīng)用拆分,采用分布式開發(fā)」

應(yīng)用拆分之后,就將原來在同一進(jìn)程里的調(diào)用變成了遠(yuǎn)程方法調(diào)用,此時就需要使用到 一些「遠(yuǎn)程調(diào)用技」?httpClient、hessian、dubbo、webservice?等;

隨著業(yè)務(wù)復(fù)雜度增加,我們需要采用一些開源方案進(jìn)行開發(fā),提升開發(fā)和維護(hù)效率,比 如?Dubbo、SpringCloud

通過應(yīng)用拆分之后,擴(kuò)容就變得容易,如果此時系統(tǒng)處理能力跟不上,只需要「增加服務(wù) 器即可」(把拆分后的每一個服務(wù)再多做幾個集群)

4.2.2 數(shù)據(jù)庫

1)數(shù)據(jù)庫拆分

數(shù)據(jù)庫拆分分為:「垂直拆分和水平拆分 (分庫分表)」

?「按照業(yè)務(wù)維度把相同類型的表放在一個數(shù)據(jù)庫,另一些表放在另一個數(shù)據(jù)庫」,這種方式 的拆分叫「垂直拆分」,也就是在 不同庫建不同表,把表分散到各個數(shù)據(jù)庫

比如產(chǎn)品、訂單、用戶三類數(shù)據(jù)以前在一個數(shù)據(jù)庫中,現(xiàn)在可以用三個數(shù)據(jù)庫,分別為?「產(chǎn)品數(shù)據(jù)庫、訂單數(shù)據(jù)庫、用戶數(shù)據(jù)庫」,這樣可以將不同的數(shù)據(jù)庫部署在不同的服務(wù)器上,提升單機(jī)容量和性能問題,也解決多 個表之間的 IO 競爭問題

根據(jù)數(shù)據(jù)行的特點(diǎn)和規(guī)則,將表中的「某些行切分到一個數(shù)據(jù)庫,而另外的某些行又切分 到另一個數(shù)據(jù)庫」,這種方式的拆分叫「水平拆分」

單庫單表在數(shù)據(jù)量和流量增大的過程中,大表往往會成為性能瓶頸,所以數(shù)據(jù)庫要進(jìn)行「水平拆分」

2)讀寫分離 + 主從復(fù)制

3)數(shù)據(jù)庫優(yōu)化

4.3. 靜態(tài)化

對于一些訪問量大,更新頻率較低的數(shù)據(jù),可直接定時生成靜態(tài) html 頁面,供前端訪問,而不是訪問 jsp

常用靜態(tài)化的技術(shù):freemaker、velocity?定時任務(wù),每隔 2 分鐘生成一次首頁的靜態(tài)化頁面

頁面靜態(tài)化首先可以大大提升訪問速度,不需要去訪問數(shù)據(jù)庫或者緩存來獲取數(shù)據(jù),瀏覽器直接加載?html?頁即可

頁面靜態(tài)化可以提升網(wǎng)站穩(wěn)定性,如果程序或數(shù)據(jù)庫出了問題,靜態(tài)頁面依然可以正常 訪問

4.4.削峰

???削峰本質(zhì)上是更多地延緩用戶請求,層層過濾用戶的訪問需求,遵從“最后落地到數(shù)據(jù)庫的請求數(shù)要盡量少”的原則

  1. 限流算法:通過限制單位時間內(nèi)請求的數(shù)量或速率,來控制訪問流量。常見的限流算法包括令牌桶算法和漏桶算法。

  2. 緩存:將一部分?jǐn)?shù)據(jù)緩存在內(nèi)存中,減少對數(shù)據(jù)庫的訪問次數(shù),從而降低服務(wù)器壓力。

  3. 負(fù)載均衡:將訪問流量分散到多臺服務(wù)器上,避免單一服務(wù)器過載,提高系統(tǒng)的可用性和穩(wěn)定性。

  4. 異步處理:將一些耗時的操作異步處理,如發(fā)送郵件、生成報表等,避免阻塞主線程,提高系統(tǒng)的并發(fā)能力。

  5. CDN加速:通過將靜態(tài)資源緩存在CDN節(jié)點(diǎn)上,加速用戶對靜態(tài)資源的訪問,降低服務(wù)器壓力

4.5.限流

? ? ? ? 通過削峰策略來平衡供需,從而保證系統(tǒng)的正常運(yùn)行

???????像漏斗一樣,盡量把數(shù)據(jù)量和請求量一層一層地過濾和減少,需要查詢的用戶,在緩存中能能查詢到需要的信息,無需通過每次查詢數(shù)據(jù)庫,那么最后留下的,就是真正需要成交的客戶,大大減輕DB的讀寫壓力

1)分層過濾的核心思想

  • ?通過在不同的層次盡可能地過濾掉無效請求。
  • ?通過CDN過濾掉大量的圖片,靜態(tài)資源的請求。
  • ?再通過類似Redis這樣的分布式緩存,過濾請求等就是典型的在上游攔截讀請求。

2)分層過濾的基本原則

  • ?對寫數(shù)據(jù)進(jìn)行基于時間的合理分片,過濾掉過期的失效請求。
  • ?對寫請求做限流保護(hù),將超出系統(tǒng)承載能力的請求過濾掉。
  • ?涉及到的讀數(shù)據(jù)不做強(qiáng)一致性校驗,減少因為一致性校驗產(chǎn)生瓶頸的問題。
  • ?對寫數(shù)據(jù)進(jìn)行強(qiáng)一致性校驗,只保留最后有效的數(shù)據(jù)。

????????最終,讓“漏斗”最末端(數(shù)據(jù)庫)的才是有效請求。例如:當(dāng)用戶真實達(dá)到訂單和支付的流程,這個是需要數(shù)據(jù)強(qiáng)一致性的。

5.總結(jié)

高并發(fā)(High Concurrency)是互聯(lián)網(wǎng)分布式系統(tǒng)架構(gòu)設(shè)計中必須考慮的因素之一。

提高系統(tǒng)并發(fā)能力的方式,方法論上主要有兩種:垂直擴(kuò)展(Scale Up)與水平擴(kuò)展(Scale Out)。前者垂直擴(kuò)展可以通過提升單機(jī)硬件性能,或者提升單機(jī)架構(gòu)性能,來提高并發(fā)性,但單機(jī)性能總是有極限的,互聯(lián)網(wǎng)分布式架構(gòu)設(shè)計高并發(fā)終極解決方案還是后者:水平擴(kuò)展。

同時結(jié)合一些策略達(dá)到分流、限流的目的

1.對于秒殺這樣的高并發(fā)場景業(yè)務(wù),最基本的原則就是將請求攔截在系統(tǒng)上游,降低下游壓力。如果不在前端攔截很可能造成數(shù)據(jù)庫(mysql、oracle等)讀寫鎖沖突,甚至導(dǎo)致死鎖,最終還有可能出現(xiàn)雪崩等場景。

2.劃分好動靜資源,靜態(tài)資源使用CDN進(jìn)行服務(wù)分發(fā)。

3.充分利用緩存(redis等):增加QPS,從而加大整個集群的吞吐量。

4.高峰值流量是壓垮系統(tǒng)很重要的原因,所以需要RocketMQ消息隊列在一端承接瞬時的流量洪峰,在另一端平滑地將消息推送出去。

以上,為個人工作之余一些淺薄看法,記錄下來,與諸位共享,不足之處,多多指點(diǎn),感激不盡

參考

[1]高并發(fā)場景,你要如何實現(xiàn)系統(tǒng)限流?

[2]分布式高并發(fā)服務(wù)三種常用限流方案簡介

[3]?九師兄的博客 - 高并發(fā)之限流 RateLimiter使用

http://www.risenshineclean.com/news/845.html

相關(guān)文章:

  • 柳州正規(guī)網(wǎng)站制作公司發(fā)稿網(wǎng)
  • 牛街網(wǎng)站建設(shè)免費(fèi)網(wǎng)站推廣軟件哪個好
  • 電子書籍網(wǎng)站開發(fā)推廣鏈接點(diǎn)擊器網(wǎng)頁
  • 如何開一個微信公眾號seo顧問合同
  • 昆明企業(yè)自助建站系統(tǒng)百度官網(wǎng)客服
  • 曹縣網(wǎng)站開發(fā)抓取關(guān)鍵詞的軟件
  • 虛擬幣挖礦網(wǎng)站開發(fā)新鄉(xiāng)seo網(wǎng)絡(luò)推廣費(fèi)用
  • 互聯(lián)網(wǎng)門戶網(wǎng)站世界比分榜
  • 網(wǎng)站建設(shè)目標(biāo)定位推廣排名seo
  • jsp網(wǎng)站seo優(yōu)化百度競價推廣開戶多少錢
  • 百度海外視頻網(wǎng)站建設(shè)幽默軟文經(jīng)典案例300
  • 釣魚網(wǎng)站開發(fā)百度百度一下百度
  • 做安卓icon圖標(biāo)下載網(wǎng)站網(wǎng)站推廣優(yōu)化方法
  • 提升網(wǎng)站關(guān)鍵詞排名推廣策劃方案怎么做
  • 做中國旅游網(wǎng)站的目的與必要性廣豐網(wǎng)站seo
  • 網(wǎng)頁設(shè)計作品網(wǎng)站seo關(guān)鍵詞智能排名
  • ps網(wǎng)站設(shè)計素材手機(jī)百度搜索引擎入口
  • 物流公司哪家便宜又好河南純手工seo
  • h5 css3 網(wǎng)站開發(fā)實例熱搜榜上2023年熱門話題
  • 花錢推廣的網(wǎng)絡(luò)平臺廣州seo和網(wǎng)絡(luò)推廣
  • 江蘇省昆山市網(wǎng)站制作西安網(wǎng)站seo廠家
  • 深圳招聘一般在哪個網(wǎng)站aso優(yōu)化的主要內(nèi)容
  • 西安大型網(wǎng)站建設(shè)公司排名怎么做好網(wǎng)絡(luò)營銷
  • 垃圾站 WordPress深圳剛剛突然宣布
  • 一級a做爰片視頻網(wǎng)站競價推廣托管多少錢
  • wordpress中文標(biāo)簽云網(wǎng)站關(guān)鍵詞排名seo
  • 懷化seoseo刷關(guān)鍵詞排名免費(fèi)
  • 網(wǎng)站定制建設(shè)網(wǎng)絡(luò)服務(wù)有哪些
  • 綿陽做手機(jī)網(wǎng)站建設(shè)成品網(wǎng)站源碼1688免費(fèi)推薦
  • 香港十大設(shè)計公司排名安卓手機(jī)性能優(yōu)化軟件