真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

賬戶系統(tǒng)如何應(yīng)對高并發(fā)、熱點(diǎn)賬戶等問題-創(chuàng)新互聯(lián)

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

在達(dá)孜等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,達(dá)孜網(wǎng)站建設(shè)費(fèi)用合理。

一、賬戶體系

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

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

賬戶系統(tǒng)如何應(yīng)對高并發(fā)、熱點(diǎn)賬戶等問題

1.2 賬戶屬性

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

賬戶系統(tǒng)如何應(yīng)對高并發(fā)、熱點(diǎn)賬戶等問題

  • 會計科目:每個賬戶金額的變動要體現(xiàn)一些會計的屬性,以便會計核算。

  • 賬戶類別:分為個人賬戶、企業(yè)賬戶、平臺類賬戶。

  • 賬戶明細(xì):賬戶的明細(xì)是反映賬戶余額變動的每筆詳情,采用復(fù)式記賬法,包含本對方賬號、賬戶等信息、摘要、借方的發(fā)生額及余額等信息。

  • 賬戶余額:記錄賬戶的實(shí)時余額。

1.3 會計科目

賬戶下掛在最底層的會計科目下,會計科目決定了賬戶的含義及余額變動方向。會計科目的一些屬性如下:

賬戶系統(tǒng)如何應(yīng)對高并發(fā)、熱點(diǎn)賬戶等問題

  • 科目類別:資產(chǎn)類、負(fù)債類、所有者權(quán)益、成本類、損益類等。

  • 科目級別:會計科目的級別,一級科目、二級科目、三級科目等。下級科目歸屬上級科目。

  • 余額方向:標(biāo)示余額是在借方還是貸方。

  • 科目的期末余額:每日日切后會匯總底層科目所有下掛賬戶在上一會計日的余額總和,上級科目匯總下級科目的余額總和。

1.4 科目樹

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

賬戶系統(tǒng)如何應(yīng)對高并發(fā)、熱點(diǎn)賬戶等問題

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

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

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

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

賬戶系統(tǒng)如何應(yīng)對高并發(fā)、熱點(diǎn)賬戶等問題

  • 接入模塊:提供報文解析、驗(yàn)簽、參數(shù)校驗(yàn)、權(quán)限認(rèn)證等公共服務(wù),是賬戶系統(tǒng)的統(tǒng)一入口。

  • 異步日志模塊:異步記錄業(yè)務(wù)系統(tǒng)請求報文。

  • 記賬子系統(tǒng):賬戶系統(tǒng)的核心模塊,處理業(yè)務(wù)系統(tǒng)的記賬請求。

  • 開戶子系統(tǒng):處理業(yè)務(wù)系統(tǒng)的開戶請求。

    • 首次開立賬戶:為個人或企業(yè)開立客戶、用戶及提前配置的默認(rèn)開通的賬戶。

    • 指定開立賬戶:個人或企業(yè)在首次開立賬戶后,可按科目號指定開立賬戶。

  • 查詢子系統(tǒng):提供賬戶、記賬的一些查詢功能。

  • 異步記賬模塊:提供異步記錄賬戶流水的功能。

  • 定時任務(wù)子系統(tǒng):處理失敗重試、熱點(diǎn)賬戶等的定時任務(wù)。

  • 日終子系統(tǒng):提供日切以及日終跑批的功能。

2.1.1 記賬處理

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

  • 賬戶系統(tǒng)記賬采用記賬服務(wù)的概念,每個記賬服務(wù)就是一個記賬分錄的模板,業(yè)務(wù)系統(tǒng)按照這個模板傳入記賬金額、賬戶號或者用戶號等信息。

  • 賬戶系統(tǒng)采用redis分布式鎖,防止業(yè)務(wù)系統(tǒng)重復(fù)提交請求。設(shè)置記賬訂單防重表,按照請求單號和機(jī)構(gòu)號對記賬請求做冪等性校驗(yàn)。

  • 采用復(fù)式記賬法,按照會計規(guī)則按照借貸記錄流水,有借必有貸。

  • 記賬處理時,更新賬戶余額后同步返回結(jié)果給業(yè)務(wù)系統(tǒng),異步的處理記賬流水。同時設(shè)置補(bǔ)償機(jī)制,定時重試記賬流水處理失敗的訂單,重試三次失敗后報警人工介入。

  • 記賬規(guī)則處理,每個記賬服務(wù)可以綁定一些記賬規(guī)則,賬戶系統(tǒng)根據(jù)記賬服務(wù)遍歷其綁定的規(guī)則,順序處理。

2.1.2 熱點(diǎn)賬戶問題

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

-- 充值時的記賬分錄是:

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

貸方:個人余額賬戶(+)

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

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

借方:個人余額賬戶(-)

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

當(dāng)大量用戶提現(xiàn)時,三方支付的資產(chǎn)賬戶就是熱點(diǎn)賬戶,頻繁的減少余額。https://www.jianshu.com/p/77c2ae79d38b

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

借方:個人賬戶(-)

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

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

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

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

貸方:個人賬戶(+)

當(dāng)大量用服務(wù)費(fèi)余額向用戶付款時,商戶服務(wù)費(fèi)賬戶就是熱點(diǎn)賬戶,會頻繁減少余額。焦作國醫(yī)胃腸醫(yī)院:http://jz.lieju.com/zhuankeyiyuan/37845572.htm/

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

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

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

  • 加頻賬戶處理

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

  • 減頻賬戶處理

將減頻賬戶拆分多個子賬戶,減頻子賬戶設(shè)置金額報警,如果某個減頻子賬戶余額不足觸發(fā)報警,會對該子賬戶做資金歸集,將其他子賬戶余額歸集到該子賬戶(每個子賬戶設(shè)置可歸集金額限制)。如在交易過程中發(fā)現(xiàn)該子賬戶余額不足,轉(zhuǎn)向使用其他子賬戶記賬。由于拆分子賬戶,余額查詢時需要匯總各個子賬戶余額返回;記錄主賬戶流水需要記賬后余額,這里需要異步計算匯總。當(dāng)減頻賬戶加錢時,需要平均分配入賬到不通的子賬戶。鄭州專業(yè)不孕不育醫(yī)院:http://www.zzfkyy120.com/

  • 雙頻賬戶處理

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

2.1.3 記賬死鎖問題

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

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

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

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

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

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

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

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

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

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


文章名稱:賬戶系統(tǒng)如何應(yīng)對高并發(fā)、熱點(diǎn)賬戶等問題-創(chuàng)新互聯(lián)
文章起源:http://weahome.cn/article/ghpio.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部