王平-攜程門票:億級流量挑戰下的高可用架構設計與實踐.pdf

編號:177445 PDF 54頁 5.20MB 下載積分:VIP專享
下載報告請您先登錄!

王平-攜程門票:億級流量挑戰下的高可用架構設計與實踐.pdf

1、億級流量挑戰下的高可用架構設計與實踐億級流量挑戰下的高可用架構設計與實踐攜程門票攜程門票目錄目錄01.系統概述系統概述02.營銷活動的特點營銷活動的特點03.交易系統在大流量下的架構應對策略交易系統在大流量下的架構應對策略04.如何讓高可用具備如何讓高可用具備“可持續性可持續性”?05.總結總結背景|設計原則|目標及范圍熟知的大流量場景穩|準|快|海外訪問性能優化架構健康度治理|穩定性保障體系參與過的大流量場景參與過的大流量場景系統概述系統概述秒殺秒殺/活動活動搶菜疫情疫情 搶菜搶菜雙雙1111門票門票/演唱會演唱會節假日搶票節假日搶票定時開售搶不到/搶到被退卡頓/提示太火爆/排隊印象與感受印

2、象與感受系統概述系統概述秒殺秒殺/活動活動搶菜疫情疫情 搶菜搶菜雙雙1111門票門票/演唱會演唱會節假日搶票節假日搶票涵蓋:訂前涵蓋:訂前+訂后訂后大流量/高并發保障履約準時開售/搶熱點業務場景特征業務場景特征大流量大流量/弱一致性弱一致性大流量大流量/強一致性強一致性/簡單限購簡單限購大流量大流量/弱一致性弱一致性大流量大流量/強一致性強一致性/復雜限購復雜限購大型營銷活動案例大型營銷活動案例歷史歷史大型營銷大型營銷活動活動惠游湖北惠游湖北 0 0元票元票瞬時流量超過 15001500萬萬 攜程獨家,挑戰最大,打破歷史峰值攜程獨家,挑戰最大,打破歷史峰值8.8-9.18.8-9.120202

3、020攜程:預訂絲滑(10秒售罄)IUIU(李知恩李知恩)演唱會演唱會 全球售賣全球售賣4.104.1020242024歷史峰值最高歷史峰值最高北京環球影城開業北京環球影城開業 友商:頁面卡頓,訂單無法確認,大量退單(PR事件)9.149.1420212021與友商比,攜程最穩且銷量最高與友商比,攜程最穩且銷量最高超 300300萬萬 人成功預約韓國女演員全球人氣排行TOP2歷史歷史大型營銷大型營銷活動活動4555355732020湖北0元票2021年9月14日 北京環球影城開業2023年五一2023年09月15日 武漢動物園開業2023年十一2024年4月10日 IU 演唱會CT同售營銷活動

4、營銷活動&節假日與日常峰值流量的倍數節假日與日常峰值流量的倍數2020湖北0元票2021年9月14日 北京環球影城開業2023年五一2023年09月15日 武漢動物園開業2023年十一2024年4月10日 IU 演唱會CT同售峰值峰值QPSQPS達到達到數百萬數百萬 大流量活動給系統帶來的問題大流量活動給系統帶來的問題大流量活動常見問題歸納大流量活動常見問題歸納產品產品視角視角 首頁首頁/營銷營銷頁頁預訂詳情頁詳情頁填寫頁填寫頁支付訂單詳情頁訂單詳情頁取消訂單確認中打開慢、卡頓、宕機訂單確認太慢用戶反饋用戶反饋頁面打開慢、卡頓、宕機預訂成功,無法確認,被退款已售罄,實際商品未售完預訂成功,訂單

5、確認太慢付款后不能確認、退款大流量活動常見問題歸納大流量活動常見問題歸納產品產品視角視角 首頁首頁/營銷營銷頁頁預訂詳情頁詳情頁填寫頁填寫頁支付訂單詳情頁訂單詳情頁取消訂單確認中打開慢、卡頓、宕機海外T 訪問性能差Redis、DB超負載庫存超賣/少賣不穩定不穩定:不一致不一致:供應商系統不穩定123付款后不能確認、退款研研發發視視角角 交易系統在大流量下的架構應對策略交易系統在大流量下的架構應對策略設計目標設計目標數據一致準準保障履約系統穩定穩穩保障售賣預訂順暢快快體驗絲滑大流量活動常見問題大流量活動常見問題產品產品視角視角 打開慢、卡頓、宕機打開慢、卡頓、宕機海外T 訪問性能差付款后不能確認

6、、退款RedisRedis、DBDB超負載超負載庫存超賣/少賣不穩定:不穩定:不一致:供應商系統不穩定供應商系統不穩定1 123研研發發視視角角 首頁首頁/營銷營銷頁頁預訂詳情頁詳情頁填寫頁填寫頁支付訂單詳情頁訂單詳情頁取消訂單確認中Redis超負載、緩存熱點DB超負載供應商系統不穩定原因分析原因分析頁面打開慢、卡頓頁面打開慢、卡頓Loading網絡異常請重試不穩定不穩定如何保障系統穩定如何保障系統穩定-擴容擴容RedisRedis 擴容擴容DB 隔離/服務隔離技術策略技術策略水平擴容水平擴容cluster1 Master:2 Slavecluster1 Master:4 Slave常規手段:

7、常規手段:水平擴容,讓流量水平擴容,讓流量分攤到更多實例分攤到更多實例緩存熱點問題緩存熱點問題Redis 各實例 CPU Util擴容可以降低大多數實例的擴容可以降低大多數實例的CPUCPU水位水位但不能解決熱點問題但不能解決熱點問題例如:熱門商品秒殺時如何保障系統穩定如何保障系統穩定-緩存熱緩存熱Key-原因原因/危害危害緩存熱緩存熱Key影響系統穩定性影響系統穩定性clusterQPSCPU Util2000040%4000080%熱點效應熱點效應危害危害:實例負載不均衡實例負載不均衡,拖垮服務器,拖垮服務器ServiceServiceServerRedis CacheRedis如何保障系

8、統穩定如何保障系統穩定-緩存熱緩存熱Key-技術方案技術方案技術策略技術策略:多級緩存:多級緩存L1 Local CacheL2 Redis CacheRedisServiceServiceServerFind Hot KeyLocal CacheLocal Cache 數據結構數據結構SegmentReferenceQueue key 引用隊列ConcurrentLinkedQueueReferenceEntry 最近讀隊列WriteQueueReferenceEntry 最近寫隊列ReferenceQueue value 引用隊列AccessQueueReferenceEntry 最近訪問

9、隊列(LRU隊列)Local Local CacheCache單位時間內存在的值單位時間內存在的值2 2、高頻訪問、高頻訪問例如:同一個Key,1秒內單機訪問10次1 1、主動配置、主動配置有限有限 LRULRU 隊列隊列總結:總結:1.1.自動發現自動發現HotHot keyskeys并加入到本地緩存并加入到本地緩存2.2.指定的指定的KeyKey加入到本地緩存加入到本地緩存如何保障系統穩定如何保障系統穩定-緩存熱緩存熱Key-組件升級組件升級Read local cacheRead from redisservice1.nif not found in local cacherequest

10、responsecache strategiesTTL、sizecounter.RPCRedis緩存組件緩存組件-按場景、TTL、容量-埋點、監控-自動發現如何保障系統穩定如何保障系統穩定-緩存熱緩存熱Key-效果效果RedisRedis 訪問量訪問量LocalLocal CacheCache 訪問量訪問量耗時:平均降低約25%開啟多級緩存開啟多級緩存舉例舉例 (不同的不同的KeyKey 效果不一樣效果不一樣)技術策略技術策略:多級緩存:多級緩存如何保障系統穩定如何保障系統穩定-緩存大緩存大Key注:多場景壓測結果顯示,注:多場景壓測結果顯示,200KB+較較10KB以內的性能慢以內的性能慢3

11、倍倍0.000.501.001.502.002.501512351MAVG0.60.6倍倍1.51.5倍倍3 3倍倍4 4倍倍7.37.3倍倍15.715.7倍倍以10KB為基準慢的倍數0200040006000800010000120001400016000180001512351MQPS37%37%61%61%76%76%80%80%88%88%94%94%以10KB為基準下降的百分比危害危害阻塞請求內存占用大阻塞網絡key1:value1(1KB)key2:value2(2KB)key3:value3(5MB)CacheApplicationsrequest key3timeout如何保

12、障系統穩定如何保障系統穩定-緩存大緩存大Key危害危害技術策略:長期治理技術策略:長期治理阻塞請求內存占用大阻塞網絡拆分大Key壓縮valuekey1:value1(1KB)key2:value2(2KB)key3:value3(5MB)CacheApplicationsrequest key3timeout如何保障系統穩定如何保障系統穩定-緩存大緩存大Key-監控監控如何保障系統穩定如何保障系統穩定-緩存大緩存大Key-效果效果優化后:優化后:RedisRedis 響應耗時明顯提升響應耗時明顯提升秒殺時系統不穩定秒殺時系統不穩定-DB 超負載超負載商品庫的波動導致全業務不可用商品庫的波動導致

13、全業務不可用瞬間大流量導致瞬間大流量導致DBDB線程指標異常線程指標異常接口(接口(RT RT)變慢)變慢讀寫讀寫DBDB的服務異常的服務異常如何保障系統穩定如何保障系統穩定-DB 超負載超負載-架構升級架構升級商品變更導致緩存失效,大量請求打到商品變更導致緩存失效,大量請求打到DBDBVBookingProduct ManagementProduct ServiceDB(master)DB(slave)syncbinlog parserConsumer/Workerkey1key3deleteIdActive3F FIdActive3F FbinlogCacheApplicationrequ

14、est key3response timeout商品變更導致緩存失效商品變更導致緩存失效-刪除緩存-消息量太大如何保障系統穩定如何保障系統穩定-DB 超負載超負載-架構升級架構升級商品變更商品變更新數據覆蓋更新新數據覆蓋更新Update logicVBookingProduct ManagementProduct ServiceDB(master)DB(slave)binlog parserConsumer/Workerkey1key3setIdActive3F FIdActive3F FbinlogCacheApplicationrequest key3response Aggregator

15、商品變更導致緩存失效商品變更導致緩存失效-刪除緩存-消息量太大-緩存更新緩存更新-消息聚合消息聚合如何保障系統穩定如何保障系統穩定-供應商訂單對接問題供應商訂單對接問題供應商系統其他渠道上貨直連系統(商品)其他確認方式商品后臺預訂訂單直連系統(訂單)供應商系統商品選售供應商品處理訂單提交訂單維護商品確認訂單供應供應售賣售賣履約履約訂單無法快速提交到供應商系統訂單無法快速提交到供應商系統供應商系統訂單問題:供應商系統訂單問題:限流系統不穩定如何保障系統穩定如何保障系統穩定-供應商下單設計供應商下單設計技術策略技術策略:削峰填谷:削峰填谷/緩沖池、禁售策略緩沖池、禁售策略供應商系統直連系統(訂單)

16、100單/分鐘30提交訂單供應商系統直連系統(訂單)100單/分鐘30提交訂單限流器緩沖池勻速提交勻速提交直連直連直連直連營銷營銷場景多為提前售賣,不是立即使用場景多為提前售賣,不是立即使用禁售熔斷禁售策略:禁售策略:根據健康度自動禁售定期重試bt:base timen:懲罰等級,連續第n次下線,首次下線n=1f(p):exceptionRate,30分鐘內異常率如何保障系統穩定如何保障系統穩定-供應商下單升級供應商下單升級-效果效果不影響下單吞吐量不影響下單吞吐量技術策略技術策略:削峰填谷:削峰填谷/緩沖池緩沖池流量控制流量控制減少不必要的資源投入減少不必要的資源投入確?;顒拥牧髁克辉诎踩?/p>

17、線內確?;顒拥牧髁克辉诎踩€內活動活動+常規流量常規流量如何保障系統穩定如何保障系統穩定-大流量沖擊大流量沖擊活動曝光選售預訂提交訂單例如:例如:1010萬人購買萬人購買50005000張張票票填寫頁填寫頁支付首頁首頁/營銷營銷頁頁預訂詳情頁詳情頁流量大小流量大小高高低低如何限流保障各系統穩定運行?如何限流保障各系統穩定運行?系統承載能力系統承載能力大大小小預訂系統預訂系統-自定義自定義限流限流SOASOA限流會影響所有業務限流會影響所有業務SOASOA限流限流技術方案技術方案:SOA限流限流 VS 自定義限流自定義限流(按活動商品限流)按活動商品限流)限流限流只影響活動商品只影響活動商品服

18、務器服務器/開發資源投入可控開發資源投入可控自定義限流自定義限流所有業務100%能力承載非秒殺業務70%能力承載秒殺業務30%能力承載如何保障系統穩定如何保障系統穩定-限流設計限流設計10 個 100ms 滑動窗口,每個滑動窗口限制 100QPS1s 限流 1000QPS 100ms 限制 100QPS限流更精準,防止高并發場景對下游帶來壓力限流更精準,防止高并發場景對下游帶來壓力技術策略技術策略:自定義限流:自定義限流(按活動商品限流)按活動商品限流)商品級限流,超負載也不影響整體的可用性,支持商品級限流,超負載也不影響整體的可用性,支持熱點商品熱點商品自動限流自動限流如何保障系統穩定如何保

19、障系統穩定-商品級限流商品級限流 效果效果突增流量突增流量訪問時間系統最大負載(未提前擴容情況下)所有景點:請求被限制所有景點:請求被限制/系統超負載系統超負載突增流量:突增流量:進排隊頁面進排隊頁面/提示活動限流提示活動限流請求量10:0009:5910:0150K100K150K200K250K300K請求量請求量訪問時間訪問時間其他景點:正常訪問其他景點:正常訪問單景點/資源限流閾值數據準確準準保障履約高并發系統常見問題高并發系統常見問題產品產品視角視角 打開慢、卡頓、宕機海外T 訪問性能差付款后不能確認、退款付款后不能確認、退款Redis、DB超負載庫存超賣庫存超賣/少賣少賣不穩定:不

20、一致不一致:供應商系統不穩定12 23研研發發視視角角 首頁首頁/營銷營銷頁頁預訂詳情頁詳情頁填寫頁填寫頁支付訂單詳情頁訂單詳情頁取消訂單確認中如何保障數據的準確如何保障數據的準確-扣減庫存問題扣減庫存問題限購檢查提交限購取消限購扣庫存創單下單下單問題:問題:性能瓶頸 MySQL熱點行扣減庫存(行級鎖)如何保障數據的準確如何保障數據的準確-扣減庫存架構升級扣減庫存架構升級技術策略技術策略:扣減庫存異步化,消除扣減庫存異步化,消除DB行級鎖行級鎖Redis下單下單ServiceInventory ServiceStorage扣減庫存inventory update記錄明細日志inventory_

21、detail insert事務Service是否成功否DB扣失敗,重試N次ServiceInventory Service扣庫存扣庫存還庫存還庫存無扣庫存記錄,重試N次是否成功否取消訂單取消訂單Redis1RedisServiceInventory Service鎖定后臺12345初始化庫存2初始化初始化管理后臺12312344扣減庫存服務扣減庫存服務V V 2.02.0是下單扣減庫存升級下單扣減庫存升級-效果效果扣減庫存異步化扣減庫存異步化,消除行級鎖性能瓶頸消除行級鎖性能瓶頸輕松支持數十萬輕松支持數十萬/分鐘下單分鐘下單(非極限非極限)預訂絲滑快快體驗絲滑秒殺系統常見問題秒殺系統常見問題產

22、品產品視角視角 打開慢、卡頓、宕機海外海外TT訪問性能差訪問性能差付款后不能確認,退款Redis、DB超負載庫存超賣/少賣不穩定:不一致:供應商系統不穩定123 3研研發發視視角角 首頁首頁/營銷營銷頁頁預訂詳情頁詳情頁填寫頁填寫頁支付訂單詳情頁訂單詳情頁取消訂單確認中海外訪問路徑海外訪問路徑-改造前改造前SHA-Region延遲:80msGatewayIDC 1IDC 2SLBServiceGatewaySLBServiceDBDBTTNAPAkamaiHK-NAP專線單次鏈路影響小,單次鏈路影響小,多次跨洋回源請求對性能影響大多次跨洋回源請求對性能影響大 國內與海外性能差異國內與海外性能差

23、異-網絡延遲網絡延遲AWS-SINSHAAWS-FRA150 ms150 ms900 ms350 ms350 ms100 ms350 ms450 ms200 ms250 ms250 ms850 ms450 ms600 ms200 ms300 ms300 ms950 ms500 ms500 ms250 ms國內與海外性能差異國內與海外性能差異-減少跨減少跨Region調用調用 提升系統響應速度提升系統響應速度API RouterSGP TTGateway/SLBRESTfulService DBCacheAPI RouterGateway/SLBRESTfulService DBCacheSHA

24、全量應用(數千個)全量部署,全量應用(數千個)全量部署,高成本挑戰高成本挑戰方案一:海外跨方案一:海外跨Region應用數據單元化應用數據單元化UDL N,O,P,ZUCSUCSDRC/X-Pipe跨Region數據復制國內與海外性能差異國內與海外性能差異-減少跨減少跨Region調用調用 提升系統響應速度提升系統響應速度API RouterSGPTTGateway/SLBRESTfulServiceCacheAPI RouterGateway/SLBRESTfulServiceDBCacheSHAJOBWormhole提前構建緩存提前構建緩存兼顧性能,成本下降數百倍兼顧性能,成本下降數百倍方

25、案二:入口服務聚合方案二:入口服務聚合+Redis構建構建 輕量化上云(減少回源)輕量化上云(減少回源)跨洋訪問A80msBC80ms一個完整功能,多次回源聚合為一個完整功能,多次回源聚合為1次次跨洋訪問ABC80ms80ms400ms240ms21多次回源多次回源一次回源一次回源UDL N,O,P,ZUCSUCS海外訪問性能優化海外訪問性能優化-效果效果訪問量越大,響應越快訪問量越大,響應越快高可用高可用如何實現如何實現“可持續性可持續性”?除此之外除此之外架構健康度治理架構健康度治理如何保障高可用可持續如何保障高可用可持續性性-架構健康度治理架構健康度治理系統運行健康度系統運行健康度 服務

26、性能服務性能 (API性能)服務運行服務運行 (線程數/GC/異常)服務調用服務調用(限流/熔斷/超時)數據庫數據庫(慢查詢/線程數)緩存緩存(大Key/命中率)隊列隊列(延遲)資源用量資源用量(資源利用率)工程化健康度工程化健康度 工程包工程包-包大小-包依賴數 工程效率工程效率-編譯時長-啟動時長-回退時長系統設計健康度系統設計健康度 應用規模應用規模-人均應用數-代碼行數 應用拓撲應用拓撲-循環/重復調用-調用放大系數-調用鏈路層級 應用價值應用價值-低流量/低發布基于架構健康度,分步實現應用架構治理維度、標準和方法的統一如何保障高可用可持續如何保障高可用可持續性性-完善的穩定性保障體系

27、完善的穩定性保障體系引入大型活動節假日保障體系日常開發日常開發+大型活動節假日保障形成閉環大型活動節假日保障形成閉環風險項梳理壓測壓測復盤擴容/風險預案值班總結P0 優化節中節后持續優化(風險、性能、瓶頸)大型活動節假日保障日常開發大流量高并發高可用架構設計實踐大流量高并發高可用架構設計實踐-總結總結單一職責、獨立部署單一職責、獨立部署保障核心服務高可用緩存刷新緩存刷新防大流量穿透緩存熱點緩存熱點自動發現熱Key升級為本地緩存231商品級限流商品級限流超負載正常運行削峰削峰降低峰值,保護系統熔斷熔斷&降級降級快速失敗降級運行456秒級生效秒級生效準時售賣/售罄庫存扣減庫存扣減Redis扣減,異步扣減DB惡意請求攔截惡意請求攔截識別非法請求并攔截789重視持續性優化與穩定性保障:日常架構健康度治理重視持續性優化與穩定性保障:日常架構健康度治理+大型活動節假日保障大型活動節假日保障系統設計關注點系統設計關注點設計關注點:小問題會被放大,關注讀設計關注點:小問題會被放大,關注讀/寫瓶頸,要求極高的一致性、實時性與性能寫瓶頸,要求極高的一致性、實時性與性能

友情提示

1、下載報告失敗解決辦法
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站報告下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。

本文(王平-攜程門票:億級流量挑戰下的高可用架構設計與實踐.pdf)為本站 (張5G) 主動上傳,三個皮匠報告文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知三個皮匠報告文庫(點擊聯系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。
客服
商務合作
小程序
服務號
折疊
午夜网日韩中文字幕,日韩Av中文字幕久久,亚洲中文字幕在线一区二区,最新中文字幕在线视频网站