成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

1分鐘出票5萬張!阿里電影節搶票技術揭秘

開發 開發工具
對于電影愛好者來說,每次的電影節、影展活動,都是搶票大戰的開啟,出票速度幾乎可以用“秒空”來形容,例如上海國際電影節線上開售的記錄是1分鐘售出5萬張。今天,阿里高級開發工程師念賢主要圍繞售票環節,講述阿里文娛的云智系統是如何支撐高流量并發,保障系統的穩定,不出現重賣等實現方案背后的技術。

 ????阿里妹導讀:對于電影愛好者來說,每次的電影節、影展活動,都是搶票大戰的開啟,出票速度幾乎可以用“秒空”來形容,例如上海國際電影節線上開售的記錄是1分鐘售出5萬張。

今天,阿里高級開發工程師念賢主要圍繞售票環節,講述阿里文娛的云智系統是如何支撐高流量并發,保障系統的穩定,不出現重賣等實現方案背后的技術。

一、背景介紹

先簡單分析一下電影節的搶票業務,典型特征是在大流量搶購、高并發的場景下,讓用戶極快的鎖定座位然后出票,特別是熱門的影片,會異常的火爆。第一道壓力是查詢已售座位列表和鎖座,需要能快速的支撐用戶的鎖座請求,且實時查詢到已售賣的座位列表,避免發起無效的鎖座請求;第二道壓力是出票,如果鎖座成功,但一直出票失敗,會給用戶帶來很不好的體驗。

二、架構設計思考的方向

1.讓業務贏

在分層設計上,分成渠道接入層、業務層和服務層。在業務層,對外業務和管理后臺功能獨立,職責清晰,快速支撐業務;服務層沉淀基礎服務,構成穩定的業務和基礎服務。

??

??

圖2:業務技術大圖

2.讓系統穩定

在架構設計上,接入統一網關讓系統安全,有限流,對庫存中心和訂單中心進行數據隔離,且加入多級緩存方案,讓系統穩定。

??

??

圖3:技術架構圖

三、實現方案與技術解析

1.高并發流量如何抗?

電影節的流量是非常典型的秒殺場景,瞬時流量非常高,對于系統的高性能要求就注定很高,在云智中,我們是如何抗高并發流量的?我們通過以下三點來進行闡述:熱點數據隔離、流量削峰漏斗、多級緩存。

1)熱點數據隔離

在熱點隔離這塊,云智選擇的策略包括:數據隔離和業務隔離。

數據隔離:是把查詢已售賣座位和已鎖定座位等庫存相關的熱點數據,隔離出來,單獨業務數據庫,且使用分庫分表,減少系統性能壓力,提高吞吐量。

業務隔離:電影節的業務數據,獨立的業務數據生成能力,圈定參與活動的業務數據,進行緩存預熱,起到隔離的效果。

2)流量削峰漏斗

關鍵詞是“分層削峰”,漏斗式的減少請求流量,在業務鏈路的過程中,我們會進行業務校驗,層層過濾,如用戶的賬號安全、購買資格,影院、影廳等基礎信息狀態是否正常,要購買的商品信息狀態是否正常、秒殺是否已經結束等,每個層次都盡可能的過濾掉非法的請求,只在最后端處理真正有效的請求,最終減少請求到數據庫DB的寫操作流量,保證系統處理真正有效的請求。

以鎖座流程為例子:

??

??

圖4:流量削峰漏斗示例圖

3)多級緩存

在分層漏斗的前提下,云智采用分布式緩存和本地緩存LocalCache多級緩存的方案來抵抗高并發流量,以下簡要介紹一下在系統中使用的策略:

a)緩存預熱。在指定參加活動的場次后,會在限定時間內停止變更,在開售前,會自動進行預熱緩存,避免激增流量擊穿緩存;

b)緩存失效時長控制,對基礎數據實體的VO對象和DO對象采用失效時間長短的緩存控制,靜態數據和DO實體使用長失效時長的策略:不失效或24H;動態數據和實體Info使用比較短的失效時長策略:分鐘級,比如冪等性KEY的緩存時間為2min;

c)本地緩存LocalCache使用的緩存時長策略分3種:2s,60s,122s。優先讀本地的緩存,其次讀遠程分布式的緩存,使得系統可以抵抗瞬間的高并發流量。

示例圖如下所示:

??

??

圖5:多級緩存示例圖

將緩存分2層結構:

  • 第一層是本地緩存結構:用戶、權限、基礎信息等靜態數據,我們優先選擇本地緩存;
  • 第二層是全量的緩存實體信息的DO和VO信息,這層采用的是Tair分布式緩存。

2.系統的穩定性、高可用性如何保證?

對于任何檔期或者活動,系統的穩定性都是第一要素,針對電影節的活動場景,我們使用了很多設計上的穩定性模式,其中比較核心的有:多輪全鏈路壓測、限流、降級、動態擴容、流量調度、減少單點、依賴簡化等方式;除了以上幾點,本節我們重點聊一聊我們在電影節過程中是如何保障備戰的?

1)保障備戰體系

??

??

圖6:保障備戰體系圖

a)在戰前階段

這個階段的工作會比較多,只有做到事前充分準備,才能有更好的保障結果,主要包括以下幾個部分:

(1)梳理薄弱點,包括系統架構、系統薄弱點、核心主流程,識別出來后制定應對策略;

(2)全鏈路壓測,對系統進行全鏈路壓測,找出系統可以承載的最大QPS;

(3)限流配置,為系統配置安全的、符合業務需求的限流閥值;

(4)應急預案,收集各個域的可能風險點,制作應急處理方案;

(5)安全保障,主要聚焦在賬號權限管控,以最小夠用原則為準,防止權限濫用,安全無小事;

(6)戰前演練,通過演練來檢驗保障體系是否完善,演練開票現場,提高團隊響應和處理能力;

(7)作戰手冊,制定作戰手冊,明確作戰流程和關鍵點節點的任務以及溝通機制。

??

[[318160]]

??

第九屆北京國際電影節保障現場

b)在戰中階段

活動開售,我們也稱為戰中,整個項目組主要專注三件事情,即“監控““響應”和“記錄”。項目組的同學都必須要保持作戰狀態,嚴格按照應用owner機制,負責巡檢應用情況,及時同步技術數據和業務數據是否有異常。同時,在戰中,我們臨時組建“保障虛擬小組”,用于應對大促期間可能出現的緊急客訴等問題,及時做出決策,控制影響范圍,同時也能提高整體作戰能力。記錄,是在戰中過程中必須要記錄下各應用的峰值,及時沉淀技術數據,為后續系統建設,流量評估等提供參考借鑒。

c)在戰后階段

這個階段的主要工作是項目復盤,復盤的內容主要包括:項目結果、項目回顧、項目沉淀和改進,將項目過程中收集到的問題和故障進行詳細分析,并將項目過程中沉淀出來的,關于系統穩定性保障的經驗沉淀到日常,讓活動保障的常態化逐步落地。

2)優秀實踐

a)精準監控

通過監控,實時發現各個服務是否觸發限流值,及時進行Review,調整限流值,保證業務成功率和系統穩定。

對系統基礎值班和業務量指標進行精準監控,如load,內存,PV,UV,錯誤量等,避免因內存泄露或代碼的Bug對系統產生影響,精準監控,提前感知內存泄露等問題。

b)數據大盤

通過數據大盤,實時匯總數據,展示業務數據,為系統、為業務提供更加直觀的業務支持,也可以更加有效的進行業務備戰。

??

[[318161]]

??

第二十二屆上海國際電影節保障現場

3.如何保證不出現重賣?

在業務過程中,我們實現了很多業務,解決了很多困難,我們重點闡述以下兩個痛點,一個是惡意鎖座,一個是防止超賣。

1)如何解決惡意鎖座?

首先我們采用的扣減庫存方式是預扣庫存,用戶操作鎖定座位時即鎖定庫存,那我們如何解決惡意鎖座呢?

a)鎖座訂單中會生成一個“庫存失效時間”,超過該時間,鎖座訂單會失效釋放庫存;

b)限制用戶購買數量,一人最多只能購買6張票;

c)接入黃牛防控系統;

2)如何防止庫存超賣?

電影票不同于電商業務普通的標品,是不允許出現超賣的情況,否則會出現重票,從而引發客訴輿論問題,所以在庫存數據一致性上,需要保障在高并發情況下不出現重票,我們的解決方案是:

a)使用分布式緩存,在分布式緩存中預減庫存,減少數據庫訪問;

b)使用數據庫唯一鍵,在鎖座表中,設定場次Id和座位Id作為唯一鍵。鎖定座位時,如果座位已經售賣,會報出數據庫異常,不允許某一個座位重復售賣。

四、總結

回顧電影節搶票,我們首先想到的是能抗高并發流量,能讓系統穩定。通過上述章節我們揭開了高性能、高可用等背后的技術,展示了一個典型搶票大戰的技術方案,核心技術包括:

  • 讓業務贏 = 完整的業務應用 + 支撐核心業務
  • 高性能、高可用 = 流量削峰 + 限流降級 + 多級緩存
  • 平臺成熟化 = 完善的監控 + 保障方案

在這個過程中,我們沿著讓系統穩定、讓業務贏的設計思想,不斷的思考和落地這些技術細節,沉淀核心技術,以達到讓用戶體驗流暢的搶票過程。

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2014-06-13 11:33:27

上海國際電影節

2021-07-26 07:47:37

前端自動搶票

2018-02-07 17:12:00

2013-01-22 09:31:33

2019-01-09 09:35:41

搶票Python軟件

2018-01-26 10:31:11

搶票軟件公平

2013-01-17 10:49:42

2018-01-10 15:23:09

2019-09-08 23:00:19

GitHub代碼開發者

2013-04-26 11:46:30

WWDC

2019-01-16 16:00:33

2019-01-16 14:16:05

架構技術棧微信半月刊

2013-01-28 14:16:59

2021-01-29 11:43:53

SSHLinux命令

2012-09-19 14:31:44

獵豹瀏覽器搶票

2013-01-21 16:02:29

Chrome搶票

2013-01-22 17:10:42

瀏覽器技術解析

2019-12-30 07:00:51

技術研發系統

2009-12-03 08:55:12

Java EE 6

2013-09-12 11:11:55

360獵豹12306
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.日本在线播放 | 久久久久久国产精品免费免费男同 | 亚洲精品电影网在线观看 | 日本精品久久 | 欧美一区二区三区 | 黄色在线免费网站 | 国产日批| 国产一区二区在线免费观看 | 久草在线中文888 | 久久久久免费精品国产小说色大师 | 大陆一级毛片免费视频观看 | 亚洲欧美日本在线 | 超碰97在线免费 | yiren22综合网成人 | 中文字幕第7页 | 成人在线观 | 亚洲综合在线一区二区 | 成人黄色在线观看 | 亚洲精品一区二区三区丝袜 | 久久亚洲一区二区三区四区 | 精品国产一区二区三区久久久蜜月 | 毛片免费观看 | 夜夜久久 | av日日操 | 一色一黄视频 | 91精品中文字幕一区二区三区 | 国产精品久久久久免费 | 国产福利一区二区 | 国产精品一区一区 | 91精品国产91久久久久游泳池 | 99re在线视频 | 日本网站免费观看 | 九热在线 | 国产欧美一区二区精品久导航 | 欧美a v在线 | 日韩午夜在线播放 | 国产精品入口麻豆www | 精品久久久久香蕉网 | 亚洲国产一区在线 | 一区二区av | 亚洲人成人一区二区在线观看 |