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