成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

支付結(jié)算系統(tǒng)如何應(yīng)對(duì)高并發(fā)、熱點(diǎn)賬戶(hù)等問(wèn)題-創(chuàng)新互聯(lián)

互聯(lián)網(wǎng)金融系統(tǒng)的核心是支付結(jié)算,而支付結(jié)算的基礎(chǔ)又是賬戶(hù)系統(tǒng)。金融賬戶(hù)系統(tǒng)的特點(diǎn)是并發(fā)量大、響應(yīng)快、交易金額大,熱點(diǎn)賬戶(hù)問(wèn)題突出。一個(gè)合格的賬戶(hù)系統(tǒng)既要解決上述問(wèn)題,又必須絕對(duì)保證資金安全。作為宜信這家互聯(lián)網(wǎng)金融公司的支付結(jié)算中心,其賬戶(hù)系統(tǒng)也必須具備上述特征。

創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站重做改版、津南網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為津南等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

一、賬戶(hù)體系

1.1 賬戶(hù)結(jié)構(gòu)

宜信支付結(jié)算賬戶(hù)體系是客戶(hù)、用戶(hù)、賬戶(hù)三層結(jié)構(gòu),證件號(hào)和證件類(lèi)型唯一確定一個(gè)客戶(hù),客戶(hù)號(hào)和機(jī)構(gòu)號(hào)確定一個(gè)用戶(hù),一個(gè)用戶(hù)下可開(kāi)多個(gè)不同類(lèi)型的賬戶(hù)。如圖:

支付結(jié)算系統(tǒng)如何應(yīng)對(duì)高并發(fā)、熱點(diǎn)賬戶(hù)等問(wèn)題

1.2 賬戶(hù)屬性

賬戶(hù)系統(tǒng)的基礎(chǔ)是賬戶(hù),所有的操作都圍繞著賬戶(hù)進(jìn)行,賬戶(hù)包含以下一些屬性:

支付結(jié)算系統(tǒng)如何應(yīng)對(duì)高并發(fā)、熱點(diǎn)賬戶(hù)等問(wèn)題

  • 會(huì)計(jì)科目:每個(gè)賬戶(hù)金額的變動(dòng)要體現(xiàn)一些會(huì)計(jì)的屬性,以便會(huì)計(jì)核算。
  • 賬戶(hù)類(lèi)別:分為個(gè)人賬戶(hù)、企業(yè)賬戶(hù)、平臺(tái)類(lèi)賬戶(hù)。
  • 賬戶(hù)明細(xì):賬戶(hù)的明細(xì)是反映賬戶(hù)余額變動(dòng)的每筆詳情,采用復(fù)式記賬法,包含本對(duì)方賬號(hào)、賬戶(hù)等信息、摘要、借方的發(fā)生額及余額等信息。
  • 賬戶(hù)余額:記錄賬戶(hù)的實(shí)時(shí)余額。

1.3 會(huì)計(jì)科目

賬戶(hù)下掛在最底層的會(huì)計(jì)科目下,會(huì)計(jì)科目決定了賬戶(hù)的含義及余額變動(dòng)方向。會(huì)計(jì)科目的一些屬性如下:

支付結(jié)算系統(tǒng)如何應(yīng)對(duì)高并發(fā)、熱點(diǎn)賬戶(hù)等問(wèn)題

  • 科目類(lèi)別:資產(chǎn)類(lèi)、負(fù)債類(lèi)、所有者權(quán)益、成本類(lèi)、損益類(lèi)等。
  • 科目級(jí)別:會(huì)計(jì)科目的級(jí)別,一級(jí)科目、二級(jí)科目、三級(jí)科目等。下級(jí)科目歸屬上級(jí)科目。
  • 余額方向:標(biāo)示余額是在借方還是貸方。
  • 科目的期末余額:每日日切后會(huì)匯總底層科目所有下掛賬戶(hù)在上一會(huì)計(jì)日的余額總和,上級(jí)科目匯總下級(jí)科目的余額總和。

1.4 科目樹(shù)

宜信支付結(jié)算賬戶(hù)系統(tǒng)采用科目樹(shù)的概念,每個(gè)機(jī)構(gòu)都會(huì)綁定一個(gè)科目樹(shù)??颇繕?shù)的根節(jié)點(diǎn)是一級(jí)科目,底層的科目下掛賬戶(hù),結(jié)構(gòu)如下:

支付結(jié)算系統(tǒng)如何應(yīng)對(duì)高并發(fā)、熱點(diǎn)賬戶(hù)等問(wèn)題

二、賬戶(hù)系統(tǒng)架構(gòu)

宜信支付結(jié)算賬戶(hù)系統(tǒng)采用公司自研的分布式微服務(wù)框架,對(duì)外提供http json接口,內(nèi)部各服務(wù)間采用redis實(shí)現(xiàn)的消息隊(duì)列通訊。

2.1 賬戶(hù)系統(tǒng)功能架構(gòu)

宜信支付結(jié)算賬戶(hù)系統(tǒng)分為接入模塊、記賬子系統(tǒng)、開(kāi)戶(hù)子系統(tǒng)、異步記賬模塊、查詢(xún)子系統(tǒng)、定時(shí)任務(wù)子系統(tǒng)、日終子系統(tǒng)、異步日志模塊,下圖是賬務(wù)系統(tǒng)功能模塊圖:

支付結(jié)算系統(tǒng)如何應(yīng)對(duì)高并發(fā)、熱點(diǎn)賬戶(hù)等問(wèn)題

  • 接入模塊:提供報(bào)文解析、驗(yàn)簽、參數(shù)校驗(yàn)、權(quán)限認(rèn)證等公共服務(wù),是賬戶(hù)系統(tǒng)的統(tǒng)一入口。
  • 異步日志模塊:異步記錄業(yè)務(wù)系統(tǒng)請(qǐng)求報(bào)文。
  • 記賬子系統(tǒng):賬戶(hù)系統(tǒng)的核心模塊,處理業(yè)務(wù)系統(tǒng)的記賬請(qǐng)求。
  • 開(kāi)戶(hù)子系統(tǒng):處理業(yè)務(wù)系統(tǒng)的開(kāi)戶(hù)請(qǐng)求。
    • 首次開(kāi)立賬戶(hù):為個(gè)人或企業(yè)開(kāi)立客戶(hù)、用戶(hù)及提前配置的默認(rèn)開(kāi)通的賬戶(hù)。
    • 指定開(kāi)立賬戶(hù):個(gè)人或企業(yè)在首次開(kāi)立賬戶(hù)后,可按科目號(hào)指定開(kāi)立賬戶(hù)。
  • 查詢(xún)子系統(tǒng):提供賬戶(hù)、記賬的一些查詢(xún)功能。
  • 異步記賬模塊:提供異步記錄賬戶(hù)流水的功能。
  • 定時(shí)任務(wù)子系統(tǒng):處理失敗重試、熱點(diǎn)賬戶(hù)等的定時(shí)任務(wù)。
  • 日終子系統(tǒng):提供日切以及日終跑批的功能。
2.1.1 記賬處理

記賬處理是賬戶(hù)系統(tǒng)的核心功能,該功能對(duì)性能的要求比較高,高并發(fā)下熱點(diǎn)賬戶(hù)問(wèn)題比較突出,資金的正確性也必須保證,并且根據(jù)業(yè)務(wù)不同,記賬的分錄也是五花八門(mén),宜信支付結(jié)算賬戶(hù)系統(tǒng)如何應(yīng)對(duì)這些問(wèn)題,這里重點(diǎn)介紹下:

  • 賬戶(hù)系統(tǒng)記賬采用記賬服務(wù)的概念,每個(gè)記賬服務(wù)就是一個(gè)記賬分錄的模板,業(yè)務(wù)系統(tǒng)按照這個(gè)模板傳入記賬金額、賬戶(hù)號(hào)或者用戶(hù)號(hào)等信息。
  • 賬戶(hù)系統(tǒng)采用redis分布式鎖,防止業(yè)務(wù)系統(tǒng)重復(fù)提交請(qǐng)求。設(shè)置記賬訂單防重表,按照請(qǐng)求單號(hào)和機(jī)構(gòu)號(hào)對(duì)記賬請(qǐng)求做冪等性校驗(yàn)。
  • 采用復(fù)式記賬法,按照會(huì)計(jì)規(guī)則按照借貸記錄流水,有借必有貸。
  • 記賬處理時(shí),更新賬戶(hù)余額后同步返回結(jié)果給業(yè)務(wù)系統(tǒng),異步的處理記賬流水。同時(shí)設(shè)置補(bǔ)償機(jī)制,定時(shí)重試記賬流水處理失敗的訂單,重試三次失敗后報(bào)警人工介入。
  • 記賬規(guī)則處理,每個(gè)記賬服務(wù)可以綁定一些記賬規(guī)則,賬戶(hù)系統(tǒng)根據(jù)記賬服務(wù)遍歷其綁定的規(guī)則,順序處理。
2.1.2 熱點(diǎn)賬戶(hù)問(wèn)題

熱點(diǎn)賬戶(hù)問(wèn)題是賬戶(hù)系統(tǒng)的痛點(diǎn),也困擾了我們很久,這里著重說(shuō)下。

-- 充值時(shí)的記賬分錄是:

借方:三方支付待清算賬戶(hù)(+)

貸方:個(gè)人余額賬戶(hù)(+)

當(dāng)大量用戶(hù)充值時(shí),三方支付的待清算賬戶(hù)就是熱點(diǎn)賬戶(hù),頻繁的增加余額。

-- 提現(xiàn)時(shí)的記賬分錄是:

借方:個(gè)人余額賬戶(hù)(-)

貸方:三方支付資產(chǎn)賬戶(hù)(-)

當(dāng)大量用戶(hù)提現(xiàn)時(shí),三方支付的資產(chǎn)賬戶(hù)就是熱點(diǎn)賬戶(hù),頻繁的減少余額。

--業(yè)務(wù)收服務(wù)費(fèi)的記賬分錄是:

借方:個(gè)人賬戶(hù)(-)

貸方:商戶(hù)服務(wù)費(fèi)賬戶(hù)(+)

當(dāng)大量向用戶(hù)收取服務(wù)費(fèi)時(shí),商戶(hù)服務(wù)費(fèi)賬戶(hù)就是熱點(diǎn)賬戶(hù),會(huì)頻繁增加余額。

--業(yè)務(wù)服務(wù)費(fèi)付款的記賬分錄是:

借方:商戶(hù)服務(wù)費(fèi)賬戶(hù)(-)

貸方:個(gè)人賬戶(hù)(+)

當(dāng)大量用服務(wù)費(fèi)余額向用戶(hù)付款時(shí),商戶(hù)服務(wù)費(fèi)賬戶(hù)就是熱點(diǎn)賬戶(hù),會(huì)頻繁減少余額。

記賬時(shí),所有涉及的賬戶(hù)余額都要做update更新,高并發(fā)情況下,當(dāng)出現(xiàn)上述類(lèi)型的熱點(diǎn)賬戶(hù)時(shí),由于數(shù)據(jù)庫(kù)的行級(jí)鎖,對(duì)同一賬戶(hù)的更新余額操作由并行變成串行,單個(gè)請(qǐng)求的響應(yīng)時(shí)間變長(zhǎng),從而拖垮整個(gè)記賬服務(wù)。

宜信支付結(jié)算賬戶(hù)系統(tǒng)針對(duì)上述問(wèn)題做了如下處理:

我們把熱點(diǎn)賬戶(hù)按照金額變動(dòng)方向分為加頻賬戶(hù)(余額增加頻繁)、減頻賬戶(hù)(余額扣減頻繁)、雙頻賬戶(hù)(余額增加扣減均頻繁)。

  • 加頻賬戶(hù)處理

準(zhǔn)實(shí)時(shí)更新余額。先將金額變動(dòng)插入臨時(shí)表中,由定時(shí)任務(wù)按照一定頻率匯總發(fā)生額,并更新賬戶(hù)余額,而后刪除臨時(shí)記錄。當(dāng)加頻賬戶(hù)減錢(qián)余額不足時(shí),主動(dòng)去匯總發(fā)生額。這里需要考慮主動(dòng)匯總發(fā)生額和定時(shí)任務(wù)處理的并發(fā)情況,我們?cè)谠摱〞r(shí)任務(wù)執(zhí)行時(shí)設(shè)置redis鎖,防止并發(fā),主動(dòng)匯總時(shí)會(huì)去判斷這個(gè)redis鎖是否存在,如存在證明定時(shí)任務(wù)正在執(zhí)行,無(wú)需主動(dòng)匯總,可能是真的余額不足。主動(dòng)匯總同樣會(huì)設(shè)置redis鎖,定時(shí)任務(wù)同樣會(huì)判斷。

  • 減頻賬戶(hù)處理

將減頻賬戶(hù)拆分多個(gè)子賬戶(hù),減頻子賬戶(hù)設(shè)置金額報(bào)警,如果某個(gè)減頻子賬戶(hù)余額不足觸發(fā)報(bào)警,會(huì)對(duì)該子賬戶(hù)做資金歸集,將其他子賬戶(hù)余額歸集到該子賬戶(hù)(每個(gè)子賬戶(hù)設(shè)置可歸集金額限制)。如在交易過(guò)程中發(fā)現(xiàn)該子賬戶(hù)余額不足,轉(zhuǎn)向使用其他子賬戶(hù)記賬。由于拆分子賬戶(hù),余額查詢(xún)時(shí)需要匯總各個(gè)子賬戶(hù)余額返回;記錄主賬戶(hù)流水需要記賬后余額,這里需要異步計(jì)算匯總。當(dāng)減頻賬戶(hù)加錢(qián)時(shí),需要平均分配入賬到不通的子賬戶(hù)。

  • 雙頻賬戶(hù)處理

將雙頻賬戶(hù)拆分多個(gè)子賬戶(hù)。加錢(qián)時(shí),準(zhǔn)實(shí)時(shí)更新余額,先將子賬戶(hù)金額變動(dòng)插入臨時(shí)表中,由定時(shí)任務(wù)按一定頻率匯總發(fā)生額,將匯總的發(fā)生額更新進(jìn)對(duì)應(yīng)的子賬戶(hù),并刪除金額變動(dòng)記錄;減錢(qián)按照之前減頻賬戶(hù)的邏輯執(zhí)行。

2.1.3 記賬死鎖問(wèn)題

高并發(fā)情況下,當(dāng)多個(gè)賬戶(hù)之前互相轉(zhuǎn)賬時(shí),可能會(huì)出現(xiàn)死鎖問(wèn)題。

例如:A余額賬戶(hù) —> B余額賬戶(hù)(線程1) 和 B余額賬戶(hù)—>A余額賬戶(hù)(線程2) 兩個(gè)轉(zhuǎn)賬請(qǐng)求并發(fā),賬戶(hù)系統(tǒng)對(duì)每個(gè)轉(zhuǎn)賬請(qǐng)求都會(huì)更新A、B余額,這兩個(gè)更新需要在一個(gè)事務(wù)里,正常流程線程1先更新A,再更新B,線程2先更新B,再更新A,線程1更新完A后會(huì)等待B的鎖,不提交事務(wù),線程2更新完B后會(huì)等待A的鎖,不提交事務(wù),這樣兩個(gè)線程互相等待鎖,造成死鎖。

宜信支付結(jié)算賬戶(hù)系統(tǒng)針對(duì)這種情況提出了解決辦法,對(duì)賬戶(hù)號(hào)進(jìn)行排序后再更新余額,這樣每個(gè)線程都是先更新A再更新B,解決了死鎖問(wèn)題。

2.2 賬戶(hù)系統(tǒng)存儲(chǔ)層架構(gòu)

宜信支付結(jié)算賬戶(hù)系統(tǒng)數(shù)據(jù)庫(kù)采用Mysql,緩存采用redis。

  • Mysql數(shù)據(jù)庫(kù)采用主從架構(gòu),一主二從,主庫(kù)向從庫(kù)同步數(shù)據(jù)。針對(duì)一些數(shù)據(jù)量大的表進(jìn)行分表,比較有代表性的是賬戶(hù)流水表,既要按賬戶(hù)維度查詢(xún),又要按時(shí)間維度匯總,所以針對(duì)這個(gè)特點(diǎn),冗余了一張表,一張按照賬戶(hù)分表,一張按照日期分表。

  • Redis采取集群架構(gòu),集群中每個(gè)點(diǎn)主備的形式。

2.3 賬戶(hù)系統(tǒng)的網(wǎng)絡(luò)層架構(gòu)

賬戶(hù)系統(tǒng)各個(gè)服務(wù)部署在同一機(jī)房,其中記賬子系統(tǒng)和異步記賬模塊部署在4個(gè)不同的物理機(jī)上,其他子系統(tǒng)和模塊部署在2個(gè)不同物理機(jī)上。最前端采用nginx實(shí)現(xiàn)負(fù)載均衡。

作者:李銳 程留允

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

分享文章:支付結(jié)算系統(tǒng)如何應(yīng)對(duì)高并發(fā)、熱點(diǎn)賬戶(hù)等問(wèn)題-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://jinyejixie.com/article10/ccedgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、域名注冊(cè)移動(dòng)網(wǎng)站建設(shè)、虛擬主機(jī)、全網(wǎng)營(yíng)銷(xiāo)推廣、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
崇义县| 潼关县| 慈溪市| 汉寿县| 海丰县| 颍上县| 和硕县| 湘乡市| 巴马| 陕西省| 津市市| 桦南县| 类乌齐县| 冷水江市| 家居| 都江堰市| 建昌县| 屏山县| 巴青县| 道真| 文水县| 克什克腾旗| 舟曲县| 大厂| 土默特左旗| 遂昌县| 齐齐哈尔市| 小金县| 蒙自县| 汝州市| 平潭县| 西贡区| 万盛区| 富锦市| 清涧县| 宜都市| 迁西县| 越西县| 锡林郭勒盟| 陵川县| 无棣县|