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

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

冠縣網(wǎng)站設(shè)計(jì)企業(yè)網(wǎng)站的推廣階段

冠縣網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站的推廣階段,網(wǎng)站做視頻監(jiān)控方案,有的網(wǎng)頁(yè)打不開是怎么回事目錄 1. 什么是秒殺? 2. 秒殺系統(tǒng)的特點(diǎn) 3. 如何設(shè)計(jì)秒殺系統(tǒng)? 3.1 前端秒殺設(shè)計(jì) 3.2 后端秒殺設(shè)計(jì) 4. 如何保證不超賣? 4.1 庫(kù)存扣減方式 4.2 服務(wù)端庫(kù)存處理 5. 總結(jié) * 知識(shí)擴(kuò)展:什么是CDN? 1. 什么是秒殺…

目錄

1. 什么是秒殺?

2. 秒殺系統(tǒng)的特點(diǎn)

3. 如何設(shè)計(jì)秒殺系統(tǒng)?

3.1 前端秒殺設(shè)計(jì)

3.2 后端秒殺設(shè)計(jì)

4. 如何保證不超賣?

4.1 庫(kù)存扣減方式

4.2 服務(wù)端庫(kù)存處理

5. 總結(jié)

* 知識(shí)擴(kuò)展:什么是CDN?


1. 什么是秒殺?

所謂秒殺,就是在同一個(gè)時(shí)刻有大量的客戶端請(qǐng)求爭(zhēng)搶同一個(gè)商品并完成交易的過程,瞬時(shí)會(huì)產(chǎn)生大量的并發(fā)讀和并發(fā)寫。

秒殺系統(tǒng)本質(zhì)上就是一個(gè)滿足高并發(fā)、高性能高可用的分布式系統(tǒng),下面給出一張下單交互概要圖:

2. 秒殺系統(tǒng)的特點(diǎn)

高性能

秒殺涉及大量的并發(fā)讀和并發(fā)寫,因此秒系統(tǒng)必須能支持高并發(fā)訪問,而且RT(響應(yīng)時(shí)間)需要在一定的范圍內(nèi),通常是200ms

一致性

秒殺系統(tǒng)中通常會(huì)使用緩存,如何保證緩存和數(shù)據(jù)庫(kù)中庫(kù)存數(shù)據(jù)的一致性,保證商品庫(kù)存的準(zhǔn)確性

高可用

秒殺系統(tǒng)會(huì)在瞬間收到大量的讀寫操作,如何能保證服務(wù)能穩(wěn)定的運(yùn)行,設(shè)計(jì)系統(tǒng)時(shí)是否考慮到系統(tǒng)容災(zāi)問題,保證服務(wù)的高可用

可擴(kuò)展性

當(dāng)服務(wù)達(dá)到瓶頸時(shí),如何能實(shí)現(xiàn)快速擴(kuò)容

?

3. 如何設(shè)計(jì)秒殺系統(tǒng)?

從在上述秒殺概要圖中,我們可以知道,整個(gè)秒殺流程需要從前端和后端2個(gè)核心部分進(jìn)行,因此我們就從這 2個(gè)部分來(lái)講解秒殺系統(tǒng)是如何設(shè)計(jì)的。

3.1 前端秒殺設(shè)計(jì)

服務(wù)高可用

前端是秒殺的入口,用戶首先是到前端界面進(jìn)行商品瀏覽,然后加購(gòu)自己想要的商品進(jìn)行下單付款操作。 所以,前端服務(wù)一定要保證高可用,要不然秒殺的入口都沒有了,談何秒殺。

頁(yè)面靜態(tài)化

前端數(shù)據(jù)源動(dòng)靜分離,靜態(tài)的數(shù)據(jù)可以放到CDN,前端從CDN獲取,動(dòng)態(tài)的數(shù)據(jù)放到服務(wù)器。 靜態(tài)數(shù)據(jù),比如商品的詳情信息,圖片等;動(dòng)態(tài)數(shù)據(jù),商品的數(shù)量,價(jià)格等。 比如:可以通過Url地址作為key來(lái)存儲(chǔ)靜態(tài)數(shù)據(jù)

控制對(duì)服務(wù)器請(qǐng)求的頻率

控制對(duì)服務(wù)器請(qǐng)求頻率能在一定程度上緩解服務(wù)器的壓力,限頻的方式有很多, 比如 秒殺按鈕點(diǎn)擊后置灰一定的時(shí)長(zhǎng)后才能再次點(diǎn)擊, 前端 答題正確后才向服務(wù)器發(fā)起請(qǐng)求,前端將請(qǐng)求加入隊(duì)列進(jìn)行排隊(duì),當(dāng)有多個(gè)秒殺活動(dòng)時(shí),可以分時(shí)段進(jìn)行,這些方式都是無(wú)損的。

控制對(duì)服務(wù)器請(qǐng)求參數(shù)的大小

因?yàn)槊霘⑵陂g,瞬時(shí)會(huì)有大量的請(qǐng)求涌向服務(wù)器,所以前端和服務(wù)器的數(shù)據(jù)交互要盡量的少,減少網(wǎng)絡(luò)傳輸以及編解碼的開銷。

限流,降級(jí)

當(dāng)下游服務(wù)器達(dá)到瓶頸時(shí),可以采用前端限流方式,降低對(duì)服務(wù)器的TPS和QPS。但是當(dāng)客戶端比較分散時(shí),限流閾值的設(shè)置是一個(gè)比較大的挑戰(zhàn):閾值設(shè)的太小,會(huì)導(dǎo)致服務(wù)端沒有達(dá)到瓶頸時(shí)客戶端已經(jīng)被限制;設(shè)的太大,則起不到限制的作用。

3.2 后端秒殺設(shè)計(jì)

服務(wù)高可用

后端是處理請(qǐng)求的核心服務(wù),所以必須做好高可用部署,容災(zāi)設(shè)計(jì)(異地多活)

降級(jí),限流,拒絕服務(wù)

降級(jí),就是當(dāng)系統(tǒng)的容量達(dá)到一定程度時(shí),限制或者關(guān)閉系統(tǒng)的某些非核心功能,從而把有限的資源保留給更核心的業(yè)務(wù)。所以降級(jí)一般需要前后端配合執(zhí)行,可以通過開關(guān)系統(tǒng)來(lái)實(shí)現(xiàn)。比如: 當(dāng)QPS達(dá)到一個(gè)閾值時(shí),可是設(shè)置開關(guān),將原來(lái)分頁(yè)查50條數(shù)據(jù),變成查10條,減少一次交互的數(shù)據(jù)量。

限流,就是當(dāng)系統(tǒng)容量達(dá)到瓶頸時(shí),通過限制一部分流量來(lái)保護(hù)系統(tǒng),限流可以是接口級(jí)別,服務(wù)器級(jí)別,iP級(jí)別等等,此處的限流是有損操作,限流的閾值一般可以根據(jù)壓測(cè)結(jié)果來(lái)設(shè)置

直接拒絕服務(wù),如果限流還不能解決問題,那就直接拒絕服務(wù)以求自保,這也是最差的一種兜底情況。

獨(dú)立部署秒殺服務(wù)

秒殺系統(tǒng)和普通的售賣有一定的差異點(diǎn),秒殺一般是持續(xù)時(shí)間短,并發(fā)量高,所以為了不影響正常的售賣,可以單獨(dú)部署一套秒殺服務(wù),在物理級(jí)別進(jìn)行隔離,也適合服務(wù)端靈活伸縮容以及做一些特殊的個(gè)性化處理。 有條件的團(tuán)隊(duì)可以實(shí)施。

流量削峰

當(dāng)服務(wù)流量過大時(shí),可以將請(qǐng)求存入MQ消息中間件進(jìn)行削峰處理,客戶端可以采用輪詢的方式向服務(wù)器獲取結(jié)果(服務(wù)器會(huì)受到很多結(jié)果查詢的請(qǐng)求),或者服務(wù)主動(dòng)push結(jié)果給客戶端(服務(wù)需要保留很多和客戶端的長(zhǎng)鏈接),2種方式各有優(yōu)劣,一般生產(chǎn)上輪詢查詢結(jié)果用的比較多。

熱點(diǎn)數(shù)據(jù)探測(cè)

很多時(shí)候,一個(gè)商品不屬于秒殺,但是很多用戶購(gòu)買,可能會(huì)成為熱點(diǎn)數(shù)據(jù),請(qǐng)求量不亞于秒殺,所以網(wǎng)關(guān)需要有熱點(diǎn)數(shù)據(jù)探測(cè)的功能,實(shí)現(xiàn)的方式有很多,比如:統(tǒng)計(jì)客戶端的請(qǐng)求數(shù)

增加緩存

秒殺一般遵從讀多寫少的28法則,所以可以在服務(wù)端增加緩存應(yīng)對(duì)高并發(fā)讀。緩存可以設(shè)置2層,第一層是本地緩存,可以使用Google guava的緩存框架,失效時(shí)間一般可以秒級(jí)別,本地緩存是屬于jvm級(jí)別的,每次失效后可以從redis緩存中加載,redis緩存要特別注意緩存失效,緩存擊穿,緩存雪崩的問題。

緩存擊穿:緩存中不存在,數(shù)據(jù)庫(kù)存在,這樣就會(huì)導(dǎo)致請(qǐng)求直接到達(dá)數(shù)據(jù)庫(kù),當(dāng)請(qǐng)求量比較大時(shí),可能直接把數(shù)據(jù)庫(kù)打垮。解決方法:

  1. 可以考慮緩存永遠(yuǎn)不過期

  2. 同步返回null,異步加鎖查詢數(shù)據(jù)庫(kù),更新緩存

緩存穿透:請(qǐng)求的數(shù)據(jù)在緩存和數(shù)據(jù)庫(kù)中都不存在,解決辦法:

  1. 業(yè)務(wù)層進(jìn)行合法校驗(yàn),攔截大部分不合法的請(qǐng)求

  2. 使用布隆過濾器,針對(duì)一個(gè)或者多個(gè)維度,把可能存在的數(shù)據(jù)值hash到bitmap中,bitmap中不存在則該數(shù)據(jù)一定不存在,bitmap中存該數(shù)據(jù)可能存在

  3. 對(duì)空的結(jié)果進(jìn)行緩存,設(shè)置得較短過期時(shí)間,當(dāng)有數(shù)據(jù)庫(kù)變更時(shí),必須同時(shí)刷新緩存,否則會(huì)導(dǎo)致不一致的問題存在

緩存雪崩:指緩存在同一時(shí)刻失效,請(qǐng)求都到數(shù)據(jù)庫(kù)上,解決的辦法:

  1. 可以考慮緩存永遠(yuǎn)不過期

  2. 失效時(shí)間盡量隨機(jī),避免同時(shí)過期

  3. 多級(jí)緩存,數(shù)據(jù)緩存到A和B,A設(shè)置過期時(shí)間,B不設(shè)置過期時(shí)間,如果A為空的時(shí)候去讀B,同時(shí)異步去更新緩存,需要同時(shí)更新兩個(gè)緩存

4. 如何保證不超賣?

4.1 庫(kù)存扣減方式

下單減庫(kù)存:買家下單后,扣減商品總庫(kù)存。下單減庫(kù)存是最簡(jiǎn)單也是控制最精確的一種,下單時(shí)直接通過數(shù)據(jù)庫(kù)的事務(wù)機(jī)制控制商品庫(kù)存,一定不會(huì)出現(xiàn)超賣的情況。出現(xiàn)的問題: 惡意刷單,某些人下單后占用庫(kù)存不付款。

付款減庫(kù)存:買家付款之后,扣減商品總庫(kù)存。這種方式產(chǎn)生的問題是,庫(kù)存超賣。

預(yù)扣庫(kù)存:買家下單后,預(yù)扣庫(kù)存,在一定的時(shí)間內(nèi)未付款,庫(kù)存將會(huì)自動(dòng)釋放。在買家付款前,需再次校驗(yàn)庫(kù)存是否保留,如果沒有保留,則再次嘗試預(yù)扣;如果庫(kù)存不足則不允許繼續(xù)付款;如果預(yù)扣成功,則完成付款并實(shí)際地減去庫(kù)存。這種方式在生產(chǎn)上用的比較多。

4.2 服務(wù)端庫(kù)存處理

將庫(kù)存操作的邏輯放到lua腳本中,通過redis的單線程特性,保證Lua腳本執(zhí)行不會(huì)被打斷,從而保證庫(kù)存操作的原子性

5. 總結(jié)

下面給出一張秒殺系統(tǒng)常用的架構(gòu)圖,百種業(yè)務(wù)百種架構(gòu),一個(gè)秒殺系統(tǒng)看似簡(jiǎn)單,其實(shí)包含了很多架構(gòu)的思想,從前端到后端,怎么全局把控,對(duì)于各個(gè)服務(wù)怎么去做高可用,高性能,可擴(kuò)展保證。如何設(shè)計(jì)緩存,如何保證緩存和數(shù)據(jù)庫(kù)的數(shù)據(jù)一致性,服務(wù)達(dá)到瓶頸時(shí),如何做服務(wù)降級(jí),限流。

一般我們遵從幾個(gè)原則:

  1. 前后端交互的數(shù)據(jù)盡量少

  2. 前端盡量控制對(duì)后端的無(wú)效請(qǐng)求

  3. 服務(wù)之間的依賴盡量少

  4. 請(qǐng)求路徑盡量短

  5. 服務(wù)或者中間件不要有單點(diǎn),要有容災(zāi)

* 知識(shí)擴(kuò)展:什么是CDN?

CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))是一種通過分布式服務(wù)器網(wǎng)絡(luò)加速內(nèi)容傳輸?shù)募夹g(shù)。它通過將靜態(tài)資源(如HTML、CSS、JavaScript、圖片、視頻等)緩存到全球多個(gè)節(jié)點(diǎn)服務(wù)器上,使用戶可以從離自己最近的節(jié)點(diǎn)獲取資源,從而提升加載速度和性能。

前端CDN的主要作用:

  • 加速資源加載:用戶從最近的節(jié)點(diǎn)獲取資源,減少延遲。

  • 減輕服務(wù)器負(fù)擔(dān):CDN分擔(dān)流量,降低源服務(wù)器壓力。

  • 提升可用性:即使某個(gè)節(jié)點(diǎn)故障,其他節(jié)點(diǎn)仍可提供服務(wù)。

  • 節(jié)省帶寬:通過緩存減少重復(fù)請(qǐng)求,降低帶寬消耗

常見的前端CDN服務(wù):

  • jsDelivr:免費(fèi)CDN,支持開源項(xiàng)目。

  • Cloudflare:提供安全防護(hù)和性能優(yōu)化。

  • Akamai:全球最大CDN之一,適合大型企業(yè)。

  • AWS CloudFront:亞馬遜的CDN服務(wù),與AWS生態(tài)系統(tǒng)集成。

  • Google Cloud CDN:谷歌的CDN服務(wù),與Google Cloud集成。

簡(jiǎn)單來(lái)說,前端CDN通過分布式緩存和就近訪問,顯著提升網(wǎng)站性能,改善用戶體驗(yàn),同時(shí)減輕服務(wù)器壓力。



🌸🌸🌸?完結(jié)撒花?🌸🌸🌸

??博主WX:g2279605572? ?歡迎大家與我交流!?

?

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

相關(guān)文章:

  • 陽(yáng)江做網(wǎng)站多少錢合肥網(wǎng)絡(luò)推廣網(wǎng)絡(luò)運(yùn)營(yíng)
  • 互聯(lián)網(wǎng)保險(xiǎn)經(jīng)紀(jì)公司十大排名哈爾濱推廣優(yōu)化公司
  • wordpress 自定義主頁(yè)沈陽(yáng)專業(yè)seo
  • 怎樣給網(wǎng)站做圖標(biāo)百度客戶端
  • 廣西南寧網(wǎng)站建設(shè)平臺(tái)推廣費(fèi)用
  • wordpress文章 頁(yè)面模板武漢網(wǎng)絡(luò)推廣優(yōu)化
  • 知舟網(wǎng)站建設(shè)網(wǎng)站如何被百度快速收錄
  • 廣州公司網(wǎng)站制作招聘信息網(wǎng)站關(guān)鍵詞優(yōu)化的價(jià)格
  • 蘇州專業(yè)網(wǎng)站建設(shè)開發(fā)石家莊seo管理
  • 網(wǎng)站系統(tǒng)安全保護(hù)等級(jí)是必須做的seo獨(dú)立站優(yōu)化
  • 88黃頁(yè)企業(yè)名錄長(zhǎng)沙靠譜關(guān)鍵詞優(yōu)化服務(wù)
  • 用phpmysql做圖書網(wǎng)站寰宇seo
  • 可以做ppt的網(wǎng)站有哪些內(nèi)容北京百度seo排名點(diǎn)擊軟件
  • 什么是品牌設(shè)計(jì)重慶做優(yōu)化的網(wǎng)絡(luò)公司
  • 自由策劃網(wǎng)站建設(shè)一個(gè)新產(chǎn)品策劃方案
  • 游戲服務(wù)器網(wǎng)站seo推廣招聘
  • 做網(wǎng)站服裝app試分析網(wǎng)站推廣和優(yōu)化的原因
  • 成品網(wǎng)站源碼免費(fèi)小說網(wǎng)站排名
  • 網(wǎng)站空間在哪買好微信管理系統(tǒng)登錄入口
  • 外貿(mào)網(wǎng)站如何做的好處站長(zhǎng)工具seo綜合查詢?cè)趺词褂玫?/a>
  • 手機(jī)網(wǎng)站推薦深圳seo優(yōu)化服務(wù)
  • 武漢網(wǎng)站優(yōu)化方案網(wǎng)絡(luò)推廣十大平臺(tái)
  • 怎樣獲得做網(wǎng)站的客戶信息發(fā)布平臺(tái)推廣有哪些
  • 濰坊仿站定制模板建站圖片外鏈上傳網(wǎng)站
  • 實(shí)名網(wǎng)站審核中心網(wǎng)站建設(shè)與網(wǎng)頁(yè)設(shè)計(jì)制作
  • 網(wǎng)站建設(shè)公司巨頭泰州seo推廣
  • 網(wǎng)站設(shè)計(jì) app開發(fā)優(yōu)化關(guān)鍵詞排名公司
  • 網(wǎng)站制作論壇網(wǎng)站推廣怎么弄
  • 松山湖仿做網(wǎng)站關(guān)聯(lián)詞有哪些四年級(jí)
  • 中國(guó)建設(shè)銀行官網(wǎng)站代發(fā)工資濰坊關(guān)鍵詞優(yōu)化軟件