亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 大眾點評網站的支付系統構建經驗分享

大眾點評網站的支付系統構建經驗分享

熱門標簽:騰訊地圖標注店面 柳州市電話電銷機器人團隊 宜春手機外呼系統 新科游樂園地圖標注 農村電銷機器人 福州防封電銷卡辦理低資費 廣州銷售外呼系統定制 天刀地圖標注錯誤 地圖標注位置怎么快速上線

一、能用階段
早期業務流量還不是很大,渠道網關系統業務邏輯也很簡單,一句話總結就是:讓用戶在交易的時候,能順利把錢給付了。做的事情可簡單概括成3件:發起支付請求、接收支付成功通知以及用戶要求退款時原路退回給用戶的支付賬戶。這個階段系統實踐比較簡單,主要就是“短、平、快”,快速接入新的第三方支付渠道并保證能用。系統架構如圖1。

二、可用階段
在系統演進初期的快速迭代過程中,接入的第三方支付渠道不多,系統運行還算比較平穩,一些簡單問題也可通過開發人員人工快速解決。但隨著接入的第三方支付渠道不斷增多,逐漸暴露出一些新的問題:

(1) 所有的業務邏輯都在同一個物理部署單元,不同業務之間互相影響(例如退款業務出現問題,但是與此同時把支付業務也拖垮了);

(2) 隨著業務流量的增大,數據庫的壓力逐漸增大,數據庫的偶爾波動造成系統不穩定,對用戶的支付體驗影響很大;

(3) 支付、退款等狀態的同步很大程度上依賴第三方支付渠道的異步通知,一旦第三方支付渠道出現問題,造成大量客訴,用戶體驗很差,開發、運營都很被動。

針對(1)中的業務之間互相影響問題,我們首先考慮進行服務拆分,將之前一個大的物理部署單元拆成多個物理部署單元。有兩種明顯的可供選擇的拆分策略:

按照渠道拆分,不同的第三方支付渠道獨立一個物理部署單元,例如微信一個部署單元,支付寶一個部署單元等;
按照業務類型拆分,不同的業務獨立一個物理部署單元,例如支付業務一個部署單元,退款業務一個部署單元等。
考慮到在當時的流量規模下,支付業務優先級最高,退款等業務的優先級要低;而有些渠道的流量占比很小,作為一個獨立的部署單元,會造成一定的資源浪費,且增加了系統維護的復雜度。基于此,我們做了一個符合當時系統規模的trade-off:選擇了第2種拆分策略 — 按照業務類型拆分。

針對(2)中的DB壓力問題,我們和DBA一起分析原因,最終選擇了Master-Slave方案。通過增加Slave來緩解查詢壓力;通過強制走Master來保證業務場景的強一致性;通過公司的DB中間件Zebra來做負載均衡和災備切換,保證DB的高可用性。

針對(3)中的狀態同步問題,我們對不同渠道進行梳理,在已有的第三方支付渠道異步通知的基礎上,通過主動查詢定時批量同步狀態,解決了絕大部分狀態同步問題。對于仍未同步的少量Case,系統開放出供內部使用的API,方便后臺接入和開發人員手動補單。

在完成上述的實踐之后,渠道網關系統已達到基本可用階段,通過內部監控平臺可以看到,核心服務接口可用性都能達到99.9%以上。演化之后的系統架構如圖2。

三、柔性可用階段
在解決了業務隔離、DB壓力、狀態同步等問題后,渠道網關系統度過一段穩定可用的時期。但架不住業務飛速增長的壓力,之前業務流量規模下的一些小的系統波動、流量沖擊等異常,在遭遇流量洪峰時被急劇放大,最終可能成為壓垮系統的最后一根稻草。在新的業務流量規模下,我們面臨著新的挑戰:

(1) 隨著團隊的壯大,新加入的同學在接入新的渠道或者增加新的邏輯時,往往都會優先選用自己熟悉的方式完成任務。但熟悉的不一定是合理的,有可能會引入新的風險。特別是在與第三方渠道對接時,系統目前在使用的HTTP交互框架就有 JDK HttpURLConnection/HttpsURLConnection、Httpclient3.x、Httpclient4.x(4.x版本內部還分別有使用不同的小版本)。僅在這個上面就踩過好幾次慘痛的坑。

(2) 在按業務類型進行服務拆分后,不同業務不再互相影響。但同一業務內部,之前流量規模小的時候,偶爾波動一次影響不大,現在流量增大后,不同渠道之間就開始互相影響。例如支付業務,對外統一提供分布式的支付API,所有渠道共享同一個服務RPC連接池,一旦某一個渠道的支付接口性能惡化,導致大量占用服務RPC連接,其他正常渠道的請求都無法進來;而故障渠道性能惡化直接導致用戶無法通過該渠道支付成功,連鎖反應導致用戶多次重試,從而進一步導致惡化加劇,最終引起系統雪崩,拒絕服務,且重啟后的服務還有可能被大量的故障渠道重試請求給再次擊垮。

(3) 目前接入的第三方支付渠道,無論是第三方支付公司、銀行或是其他外部支付機構,基本都是通過重定向或SDK的方式引導用戶完成最終支付動作。在這條支付鏈路中,渠道網關系統只是在后端與第三方支付渠道進行交互(生成支付重定向URL或預支付憑證),且只能通過第三方支付渠道的異步通知或自己主動進行支付查詢才能得知最終用戶支付結果。一旦某個第三方支付渠道內部發生故障,渠道網關系統完全無法得知該支付鏈路已損壞,這對用戶支付體驗造成損害。

(4) 現有的渠道網關的DB,某些非渠道網關服務仍可直接訪問,這對渠道網關系統的DB穩定性、DB容量規劃等帶來風險,進而影響渠道網關系統的可用性,內部戲稱被戴了“綠帽子”。

(5) 對于退款鏈路,系統目前未針對退款異常case進行統一收集、整理并分類,且缺乏一個清晰的退款鏈路監控。這導致用戶申請退款后,少量用戶的退款請求最終未處理成功,用戶發起客訴。同時由于缺乏監控,導致這種異常退款缺乏一個后續推進措施,極端情形下,引起用戶二次客訴,極大損害用戶體驗和公司信譽度。

為最大程度解決問題(1)中描述的風險,在吸取踩坑的慘痛教訓后,我們針對第三方渠道對接,收集并整理不同的應用場景,抽象出一套接入框架。接入框架定義了請求組裝、請求執行、響應解析和錯誤重試這一整套網關交互流程,屏蔽了底層的HTTP或Socket交互細節,并提供相應的擴展點。針對銀行渠道接入存在前置機這種特殊的應用場景,還基于Netty抽象出連接池(Conn Pool)和簡單的負載均衡機制(LB, 提供Round Robin路由策略)。不同渠道在接入時可插入自定義的組裝策略(擴展已有的HttpReq、HttpsReq或NettyReq),執行策略[擴展已有(Http、Https或Netty)Sender/Receiver],解析策略(擴展已有的HttpResp、HttpsResp或NettyResp),并復用框架已提供的內容解析(binary/xml/json parser)、證書加載(keystore/truststore loader)和加解密簽名(encrypt/decrypt/sign/verify sign)組件,從而在達到提高渠道接入效率的同時,盡可能減少新渠道接入帶來的風險。接入框架的流程結構如圖3。

為解決問題(2)中渠道之間相互影響,一個簡單直觀的思路就是渠道隔離。如何隔離,隔離到什么程度?這是2個主要的問題點:

如何隔離 考慮過將支付服務進一步按照渠道拆分,將系統繼續做小,但是拆分后,支付API的調用端需要區分不同渠道調用不同的支付API接口,這相當于將渠道隔離問題拋給了調用端;同時拆分后服務增多,調用端需要維護同一渠道支付業務的多個不同RPC-API,復雜度提高,增加了開發人員的維護負擔,這在當前的業務流量規模下不太可取。所以我們選擇了在同一個支付服務API內部進行渠道隔離。由于共用同一個支付服務服務API連接池,渠道隔離的首要目標就是避免故障渠道大量占用AP連接池,對其他正常渠道造成株連影響。如果能夠自動檢測出故障渠道,并在其發生故障的初期階段就快速失敗該故障渠道的請求,則從業務邏輯上就自動完成了故障渠道的隔離。
隔離到什么程度 一個支付渠道下存在不同的支付方式(信用卡支付、借記卡支付、余額支付等),而有些支付方式(例如信用卡支付)還存在多個銀行。所以我們直接將渠道隔離的最小粒度定義到支付渠道 -> 支付方式 -> 銀行。
基于上述的思考,我們設計并實現了一個針對故障渠道的快速失敗(fail-fast)機制:

將每一筆支付請求所附帶的支付信息抽象為一個特定的fail-fast路徑,請求抽象成一個fail-fast事務,請求成功即認為事務成功,反之,事務失敗。
在fail-fast事務執行過程中,級聯有2個fail-fast斷路開關:
靜態開關,根據人工配置(on/off),斷定某個支付請求是否需快速失敗。
動態開關,根據歷史統計信息,確定當前健康狀態,進而斷定是否快速失敗當前支付請求。
動態斷路開關抽象了3種健康狀態(closed-放行所有請求;half_open-部分比例的請求放行;open-快速失敗所有請求),并依據歷史統計信息(總請求量/請求失敗量/請求異常量/請求超時量),在其內部維護了一個健康狀態變遷的狀態機。狀態變遷如圖4。

狀態機的每一次狀態變遷都會產生一個健康狀態事件,收銀臺服務可以監聽這個健康狀態事件,實現支付渠道的聯動上下線切換。
每一筆支付請求結束后都會動態更新歷史統計信息。
經過線上流量模擬壓測觀察,fail-fast機制給系統支付請求增加了1~5ms的額外耗時,相比第三方渠道的支付接口耗時,占比1%~2%,屬于可控范圍。渠道故障fail-fast機制上線之后,結合壓測配置,經過幾次微調,穩定了線上環境的fail-fast配置參數。

在前不久的某渠道支付故障時,通過公司內部的監控平臺,明顯觀察到fail-fast機制起到很好的故障隔離效果,如下圖5。

為解決問題(3)中支付鏈路可用性監測,依賴公司內部的監控平臺上報,實時監控支付成功通知趨勢曲線;同時渠道網關系統內部從業務層面自行實現了支付鏈路端到端的監控。秒級監控支付鏈路端到端支付成功總量及支付成功率,并基于這2個指標的歷史統計信息,提供實時的支付鏈路郵件或短信報警。而在流量高峰時,該監控還可通過人工手動降級(異步化或關閉)。這在很大程度上提高了開發人員的核心支付鏈路故障響應速度。

為解決問題(4)中的“綠帽子”,渠道網關系統配合DBA回收所有外部系統的DB直接訪問權限,提供替換的API以供外部系統訪問,這給后續的提升DB穩定性、DB容量規劃以及后續可能的異步多機房部署打下基礎。

針對問題(5)中退款case,渠道網關系統配合退款鏈路上的其他交易、支付系統,從源頭上對第三方渠道退款異常case進行統一收集、整理并分類,并形成退款鏈路核心指標(退款當日成功率/次日成功率/7日成功率)監控,該部分的系統實踐會隨著后續的“退款鏈路統一優化”一起進行分享;

隨著上述實踐的逐步完成,渠道網關系統的可用性得到顯著提高,核心鏈路的API接口可用性達到99.99%,在公司的917大促中,渠道網關系統平穩度過流量高峰,并迎來了新的記錄:提交第三方渠道支付請求的TPS達到歷史新高。且在部分渠道接口發生故障時,能保證核心支付API接口的穩定性,并做到故障渠道的自動檢測、恢復,實現收銀臺對應渠道的聯動上下線切換。同時,通過核心支付鏈路支付成功率監控,實現第三方渠道內部故障時,渠道上下線的手動切換。至此,基本保證了在部分第三方渠道有損的情況下,渠道網關系統的柔性可用。演化后的此階段系統架構如圖6。

四、經驗與總結
在整個渠道網關系統一步步的完善過程中,踩過很多坑,吃過很多教訓,幾點小的收獲:
1.堅持核心思想,拆分、解耦,大系統做小,做簡單;
2.系統總會有出問題的時候,重要的是如何快速定位、恢復、解決問題,這是一個長期而又艱巨的任務;
3.高可用性的最大敵人不僅是技術,還是使用技術實現系統的人,如何在業務、系統快速迭代的過程中,保證自我驅動,不掉隊;
4.高流量,大并發對每一個工程師既是挑戰,更是機遇。

標簽:呼和浩特 陽江 南昌 和田 雅安 揭陽 宣城 貴州

巨人網絡通訊聲明:本文標題《大眾點評網站的支付系統構建經驗分享》,本文關鍵詞  大眾,點評,網,站的,支付,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《大眾點評網站的支付系統構建經驗分享》相關的同類信息!
  • 本頁收集關于大眾點評網站的支付系統構建經驗分享的相關信息資訊供網民參考!
  • 推薦文章
    欧美激情一区二区三区视频 | 久久精品免视看国产成人2021| 精品视频在线看| 亚洲天堂在线播放| 九九九网站| 999精品在线| 国产麻豆精品免费视频| 青青久在线视频| 91麻豆精品国产综合久久久| 国产伦精品一区三区视频| 成人免费福利片在线观看| 午夜家庭影院| 91麻豆爱豆果冻天美星空| 亚洲第一色在线| 深夜做爰性大片中文| 91麻豆精品国产自产在线观看一区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 青青久久精品| 亚欧成人乱码一区二区| 亚洲 欧美 91| 四虎影视久久久| 成人高清护士在线播放| 91麻豆精品国产自产在线| 毛片电影网| 欧美日本免费| 国产伦精品一区二区三区在线观看| 日韩av成人| 国产伦久视频免费观看 视频| 国产国语对白一级毛片| 国产视频一区在线| a级毛片免费全部播放| 99热热久久| 台湾毛片| 欧美爱爱网| 黄视频网站在线观看| 精品国产香蕉在线播出| 国产精品1024在线永久免费| 高清一级淫片a级中文字幕| 欧美国产日韩一区二区三区| 午夜家庭影院| 日韩中文字幕在线亚洲一区 | 国产不卡高清| 日韩免费在线视频| 一级女性全黄生活片免费| 欧美电影免费看大全| 精品视频在线观看视频免费视频| 精品视频免费在线| 黄色免费网站在线| 精品毛片视频| 欧美激情在线精品video| 青青青草视频在线观看| 99热精品一区| 免费一级片在线观看| 国产91丝袜在线播放0| 二级特黄绝大片免费视频大片| 台湾毛片| 亚洲精品久久久中文字| 毛片电影网| 久久成人亚洲| 99热热久久| 日韩免费在线观看视频| 日本在线www| 国产视频久久久久| 国产精品自拍亚洲| 亚飞与亚基在线观看| 欧美大片aaaa一级毛片| 九九热国产视频| 亚洲第一页色| 日韩专区一区| 99色视频| 成人高清免费| 国产91丝袜在线播放0| 精品在线观看国产| 亚洲 欧美 91| 日韩专区在线播放| 精品国产一区二区三区久久久蜜臀| 国产视频久久久| 欧美激情一区二区三区在线 | 中文字幕97| 日韩中文字幕一区二区不卡| 日韩在线观看免费| 成人av在线播放| 99色视频| a级黄色毛片免费播放视频| 美女免费精品高清毛片在线视 | 青青青草影院 | 国产视频久久久| 久久99中文字幕| 国产精品自拍亚洲| 国产麻豆精品视频| 天天做日日爱夜夜爽| 日韩免费在线视频| 欧美大片一区| 欧美爱色| 亚欧成人毛片一区二区三区四区 | 国产91素人搭讪系列天堂| 韩国妈妈的朋友在线播放| 欧美激情一区二区三区视频高清| 国产精品自拍亚洲| 色综合久久天天综合观看| 999精品在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 亚欧成人乱码一区二区| 999久久狠狠免费精品| 韩国毛片| 久久国产精品自由自在| 九九干| 天天做人人爱夜夜爽2020 | 99久久精品费精品国产一区二区| 日本免费乱理伦片在线观看2018| 日韩在线观看视频网站| 中文字幕一区二区三区 精品| 99久久精品国产免费| 欧美激情一区二区三区在线 | 国产a毛片| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 天堂网中文在线| 成人免费观看的视频黄页| 国产成人精品综合| 国产成人女人在线视频观看| 国产成+人+综合+亚洲不卡| 成人免费观看的视频黄页| 999久久66久6只有精品| 亚洲第一页色| 午夜欧美成人久久久久久| 你懂的福利视频| 日韩一级黄色片| 亚欧成人乱码一区二区| 欧美电影免费看大全| 亚洲 国产精品 日韩| 麻豆系列 在线视频| 免费一级片在线| 成人影视在线观看| 日韩一级黄色大片| 深夜做爰性大片中文| 精品国产三级a∨在线观看| 天堂网中文在线| 香蕉视频久久| 可以免费看毛片的网站| 亚洲 国产精品 日韩| 欧美爱色| 国产精品123| 91麻豆精品国产高清在线| 99久久网站| 久久99欧美| 韩国三级视频在线观看| 久久国产影院| 成人免费高清视频| 成人在免费观看视频国产| 国产麻豆精品视频| 天堂网中文在线| 九九久久99综合一区二区| 99色视频| 中文字幕97| 精品国产三级a| 久久国产一久久高清| 人人干人人草| 亚久久伊人精品青青草原2020| 黄视频网站在线观看| 日韩av成人| 一 级 黄 中国色 片| 亚洲精品久久玖玖玖玖| 国产a视频精品免费观看| 国产一级强片在线观看| 欧美a级大片| 日韩免费在线| 超级乱淫伦动漫| 亚欧视频在线| 国产一区二区精品久久| 精品视频在线观看视频免费视频| 尤物视频网站在线观看| 日韩一级黄色大片| 免费的黄视频| 欧美国产日韩久久久| 国产美女在线一区二区三区| 国产国语对白一级毛片| 免费国产在线观看不卡| 高清一级淫片a级中文字幕| 99色播| 美女免费精品高清毛片在线视 | 免费国产一级特黄aa大片在线| 欧美a免费| 超级乱淫黄漫画免费| 亚洲天堂在线播放| 色综合久久天天综合绕观看| 91麻豆高清国产在线播放| 精品国产一区二区三区久久久蜜臀| 日本在线不卡免费视频一区| 亚洲天堂免费观看| 精品久久久久久中文字幕2017| 精品国产香蕉在线播出| 精品久久久久久中文字幕一区| 亚洲爆爽| 精品视频免费看| 国产一区免费在线观看| 久久福利影视| 午夜在线亚洲| 999久久66久6只有精品| 中文字幕97| 99久久精品国产免费|