架構(gòu)與思維:秒殺和競(jìng)拍的業(yè)務(wù)架構(gòu),永不過時(shí)的話題
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
1 互聯(lián)網(wǎng)架構(gòu)越來越復(fù)雜?為啥感覺互聯(lián)網(wǎng)架構(gòu)越來越復(fù)雜了,早期我們的系統(tǒng),可能也就那么少部分人使用,大都是一些后臺(tái)管理系統(tǒng)。
但是隨著互聯(lián)網(wǎng)的普及和用戶的激增,為了應(yīng)對(duì)流量增量帶來的各種問題,我們的架構(gòu)體系衍生出很多強(qiáng)大的技術(shù)方案。 2 什么是秒殺/競(jìng)拍業(yè)務(wù)秒殺業(yè)務(wù)也是隨著互聯(lián)網(wǎng)電商的發(fā)展而不斷普及的,我們來看看普通業(yè)務(wù)和秒殺業(yè)務(wù)的區(qū)別 2.1 普通的業(yè)務(wù)
2.2 秒殺/競(jìng)拍業(yè)務(wù)只有少量的數(shù)據(jù),卻會(huì)在集中的時(shí)間段被一批人看到和搶購(gòu),集中式的高頻讀寫。 典型秒殺/競(jìng)拍業(yè)務(wù)案例:
這些業(yè)務(wù)場(chǎng)景有如下技術(shù)難點(diǎn):
所以,一個(gè)優(yōu)秀的秒殺業(yè)務(wù)架構(gòu),在現(xiàn)在的互聯(lián)網(wǎng)業(yè)務(wù)中,是一個(gè)永不過時(shí)的話題 3 如何優(yōu)化這邊只針對(duì)幾個(gè)對(duì)秒殺業(yè)務(wù)有效改進(jìn)的點(diǎn)做展開,什么集群動(dòng)態(tài)擴(kuò)容、流量控制、彈性伸縮、智能限流啊,可以參考我的這篇文章《千萬級(jí)流量沖擊下,如何保證極致性能》。 3.1 清除無效請(qǐng)求盡量在前面就把一些無效請(qǐng)求給清理掉,所以這些操作Web前端 或者 App Client端做就行了,越前端越好,盡量不要傷害到服務(wù)端,比如:
3.2 服務(wù)端+緩存層做高效原子操作公共數(shù)據(jù)做緩存 原子操作保證秒殺的計(jì)數(shù)
隊(duì)列保證請(qǐng)求有序進(jìn)入
這里 mystream 是 Stream 的名稱,* 表示讓 Redis 自動(dòng)生成一個(gè)唯一的消息 ID。field1 value1 和 field2 value2 是消息的內(nèi)容,你可以根據(jù)需要添加任意數(shù)量的字段。 擴(kuò)展閱讀 3.3 數(shù)據(jù)層做終兜底經(jīng)過上面的保證之后,到數(shù)據(jù)層的量就很少了,大概率就是你定額的商品數(shù)量同等的數(shù)量。 3.4 全球式業(yè)務(wù),單元化處理有些人可能會(huì)說,我的商品全球售賣,那我的緩存中心、數(shù)據(jù)中心放哪里,如果放中國(guó),那跨地域跨機(jī)房訪問,在0.1微妙都能決定我是不是買得到,歐洲的客戶鐵定搶不到庫(kù)里南了。 A/B中心都有這樣的緩存或者數(shù)據(jù)結(jié)構(gòu),配置中心統(tǒng)一下發(fā)配置。然后在各自的單元里面玩耍,互不干預(yù)。 秒殺業(yè)務(wù)千萬不要想著跨地域+跨機(jī)房,用戶存在不公平性。 4 寫在最后
該文章在 2024/7/22 10:45:43 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |