基於雲計算架構的分布式網際網路金融網貸方法和系統與流程
2023-05-20 10:41:17
本發明涉及一種網際網路金融網貸方法和系統,具體地涉及一種基於雲計算架構的分布式網際網路金融網貸方法和系統。
背景技術:
網際網路金融藉助獨有的渠道和技術上風,為處在傳統金融服務邊沿的用戶提供優秀、高效的金融服務,成為如今金融體系的有益填補。但是傳統的網際網路金融網貸系統架構設計簡單,用戶量小的時候基本滿足使用需求。但是當用戶量大的時候,伺服器壓力增大,平臺難以承受大規模訪問,造成系統不穩定,甚至停止服務,影響正常業務,造成經濟損失。隨著行業間競爭的日益激烈,對於系統穩定的需求也日益強烈,傳統的金融網貸系統已經不能夠滿足業務的增長。本發明由此而來。
技術實現要素:
針對上述存在的技術問題,本發明目的是:提供一種基於雲計算架構的分布式網際網路金融網貸系統和方法,基於雲計算架構開發的分布式Web應用,可以使應用程式能夠更好的擴展,提高系統的穩定性,優化用戶體驗。系統採用了第三方資金託管,使得平臺更加透明、公正,保障了資金的安全。
本發明的技術方案是:
一種基於雲計算架構的分布式網際網路金融網貸方法,其特徵在於,包括通過網際網路連接的普通用戶端、企業用戶端和雲伺服器,具體包括如下步驟:
S01:普通用戶通過普通用戶端註冊成為會員,當普通用戶完成實名認證和第三方平臺託管開戶後,允許進入個人中心頁面;個人中心頁面,用於顯示帳戶信息以及交易記錄信息,能夠進行充值提現操作,在產品列表中購買上線理財產品;
S02:當普通用戶購買理財產品時,判斷帳戶餘額,當帳戶餘額低於相應的金額時,不能進行購買操作;在支付金額時,連接第三方託管系統,驗證用戶的交易密碼,當交易密碼驗證成功後,用戶產生的購買交易才會成功;
S03:當理財產品滿標後,在後臺管理員審核通過並且主動放款後,將本次借款金額加入企業用戶的帳戶餘額中,企業用戶通過其在第三方託管帳戶上的資金提現到銀行卡;當到了約定還款日期後,企業用戶將相應資金充值到第三方託管帳戶,並在企業用戶端的個人中心頁面將需要還款的理財產品還款,後臺管理員將本金和利息返還至購買該理財產品的普通用戶帳戶內。
優選的,雲伺服器對數據進行實時分析,包括用戶註冊實時數據分析、登錄實時數據分析、充值實時數據分析、系統充值接口實時分析、用戶提現實時數據分析、系統提現接口實時分析、用戶投資分析。
優選的,雲伺服器對數據進行實時分析包括以下步驟:
a) 數據採集:通過分布式日誌聚合系統從各個Web伺服器節點上實時採集日誌數據;
b) 數據接入:通過分布式消息隊列系統緩存日誌的消息隊列;
c) 流式計算:通過分布式實時計算系統對採集的數據進行流式計算、統計和聚合;
d) 數據輸出:將處理後的日誌數據持久化到MySQL資料庫中,搭建SpringMVC框架和Hibernate框架獲取數據,利用前端圖表庫渲染圖表數據,展示在管理員端的日誌分析監控頁面上。
優選的,當普通用戶帳戶有異常時,後臺管理員在會員管理中將用戶鎖定,被鎖定的用戶無法登錄。
本發明又公開了一種基於雲計算架構的分布式網際網路金融網貸系統,其特徵在於,基於Play框架、SpringMVC框架和Hibernate框架,包括通過網際網路連接的前臺模塊、後臺模塊和雲伺服器;
所述前臺模塊包括:
託管開戶模塊,用於普通用戶實名認證並在第三方託管平臺開通資金託管帳戶;
充值提現模塊,用於普通用戶和企業用戶將銀行卡中的資金充值到第三方託管平臺或者將第三方託管平臺內的資金體現至銀行卡;
投標理財模塊,用於普通用戶在個人中心頁面中瀏覽理財產品列表,選擇需要購買的理財產品及金額,完成購買操作;
還款模塊,用於企業用戶在帳戶餘額大於還款金額時進行借款標還款,將本金和利息返還給投資的普通用戶;
所述後臺模塊包括:
平臺內容管理模塊,用於後臺管理員修改系統前臺頁面的宣傳Banner圖片;
借款標管理模塊,用於後臺管理員查看系統中借款中、滿標、還款中、已完成的借款標,並且增加、修改或刪除借款標;
用戶管理模塊,用於後臺管理員查看所有註冊的普通用戶和企業用戶;修改普通用戶的個人信息,鎖定或解鎖用戶,設置用戶登錄權限;
財務管理模塊,用於後臺管理員對滿標的借款標進行放款操作;
系統管理模塊,用於後臺管理員查看操作日誌記錄信息;
所述雲伺服器用於處理和存儲數據。
優選的,其特徵在於,所述雲伺服器包括日誌分析監控模塊,用於對數據進行實時分析,包括用戶註冊實時數據分析、登錄實時數據分析、充值實時數據分析、系統充值接口實時分析、用戶提現實時數據分析、系統提現接口實時分析、用戶投資分析。
優選的,其特徵在於,日誌分析監控模塊對數據進行實時分析包括以下步驟:
a) 數據採集:通過分布式日誌聚合系統從各個Web伺服器節點上實時採集日誌數據;
b) 數據接入:通過分布式消息隊列系統緩存日誌的消息隊列;
c) 流式計算:通過分布式實時計算系統對採集的數據進行流式計算、統計和聚合;
d) 數據輸出:將處理後的日誌數據持久化到MySQL資料庫中,搭建SpringMVC框架和Hibernate框架獲取數據,利用前端圖表庫渲染圖表數據,展示在管理員端的日誌分析監控頁面上。
與現有技術相比,本發明的優點是:
基於雲計算架構的分布式金融網貸系統相比於傳統的金融網貸系統來說,更加安全,能夠提供更穩定的服務。系統採用了第三方資金託管,使得平臺更加透明、公正,保障了資金的安全。
對於個人用戶來說,擁有更棒的交互體驗。即使在網貸系統用戶訪問量劇增的時候,依然可以流暢訪問。當某一金融理財產品在同一時段被大量用戶搶購時,也不影響平臺的正常使用。
對於企業來說,系統安全、穩定、可靠。即使某一臺伺服器因硬體故障停止服務,也不會影響系統的正常運行,緩解了企業運維人員的工作壓力。並且系統擁有的基於雲計算的監控及日誌分析功能,為企業風控、審計、安全等部門提供了強有力的支撐。系統提供的自動生成業務數據報表能夠為企業高層的決策提供科學依據。
附圖說明
下面結合附圖及實施例對本發明作進一步描述:
圖1為本發明基於雲計算架構的分布式網際網路金融網貸系統的前臺模塊的時序圖;
圖2為本發明基於雲計算架構的分布式網際網路金融網貸系統的前臺模塊功能框圖;
圖3為本發明基於雲計算架構的分布式網際網路金融網貸系統的後臺模塊的時序圖;
圖4為本發明基於雲計算架構的分布式網際網路金融網貸系統的後臺模塊功能框圖;
圖5為本發明基於雲計算架構的分布式網際網路金融網貸方法的流程圖;
圖6為本發明基於雲計算架構的分布式網際網路金融網貸系統的用戶託管開戶的流程圖;
圖7為本發明基於雲計算架構的分布式網際網路金融網貸系統的用戶投標理財的流程圖;
圖8為本發明基於雲計算架構的分布式網際網路金融網貸系統的日誌實時計算拓撲圖;
圖9為本發明基於雲計算架構的分布式網際網路金融網貸系統的用戶投資金額實時分析的分析監控頁面。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚明了,下面結合具體實施方式並參照附圖,對本發明進一步詳細說明。應該理解,這些描述只是示例性的,而並非要限制本發明的範圍。此外,在以下說明中,省略了對公知結構和技術的描述,以避免不必要地混淆本發明的概念。
實施例:
本發明的基於雲計算架構的分布式網際網路金融網貸系統,基於Play框架、SpringMVC框架和Hibernate框架,包括通過網際網路連接的前臺模塊、後臺模塊和雲伺服器,雲伺服器用於處理和存儲數據,包括日誌分析監控模塊。
系統使用Java技術進行編程開發,使用關係型資料庫MySQL。同時也使用Play框架和Hibernate框架,部分模塊也使用了SpringMVC作為項目開發框架。
普通用戶或者企業用戶通過登錄前臺模塊註冊成為會員,前臺模塊的時序圖如圖1所示。
前臺模塊包括的功能模塊如圖2所示:
託管開戶模塊,用於普通用戶實名認證並在第三方託管平臺開通資金託管帳戶;
充值提現模塊,用於普通用戶和企業用戶將銀行卡中的資金充值到第三方託管平臺或者將第三方託管平臺內的資金體現至銀行卡;
投標理財模塊,用於普通用戶在個人中心頁面中瀏覽理財產品列表,選擇需要購買的理財產品及金額,完成購買操作;
還款模塊,用於企業用戶在帳戶餘額大於還款金額時進行借款標還款,將本金和利息返還給投資的普通用戶。
後臺管理員通過後臺模塊登錄,後臺模塊的時序圖如圖3所示。
後臺模塊包括的功能模塊如圖4所示:
平臺內容管理模塊,用於後臺管理員修改系統前臺頁面的宣傳Banner圖片;
借款標管理模塊,用於後臺管理員查看系統中借款中、滿標、還款中、已完成的借款標,並且增加、修改或刪除借款標;
用戶管理模塊,用於後臺管理員查看所有註冊的普通用戶和企業用戶;修改普通用戶的個人信息,鎖定或解鎖用戶,設置用戶登錄權限;
財務管理模塊,用於後臺管理員對滿標的借款標進行放款操作;
系統管理模塊,用於後臺管理員查看操作日誌記錄信息;
日誌分析監控模塊,對數據進行實時分析,包括用戶註冊實時數據分析、登錄實時數據分析、充值實時數據分析、系統充值接口實時分析、用戶提現實時數據分析、系統提現接口實時分析、用戶投資分析。
日誌分析監控模塊使用了Flume日誌收集系統,日誌的消息隊列緩存採用了Kafka分布式消息隊列系統,日誌的計算、統計、聚合等使用了Storm分布式實時計算系統,Kafka和Storm框架都利用搭建的Zookeeper來作為分布式應用程式協調服務。
日誌分析監控模塊對數據進行實時分析包括以下步驟:
a) 數據採集:通過分布式日誌聚合系統Flume從各個Web伺服器節點上實時採集日誌數據;
b) 數據接入:通過分布式消息隊列系統Kafka緩存日誌的消息隊列;
c) 流式計算:通過分布式實時計算系統Storm對採集的數據進行流式計算、統計和聚合;
d) 數據輸出:將處理後的日誌數據持久化到MySQL資料庫中,搭建SpringMVC框架和Hibernate框架獲取數據,利用前端圖表庫渲染圖表數據,展示在管理員端的日誌分析監控頁面上。基於雲計算架構的分布式網際網路金融網貸管理員用戶可以訪問此日誌分析監控頁面,查看業務及系統的相關分析監控數據。
本系統使用的資料庫包括用戶信息表、管理員信息表、理財標信息表、平臺內容信息表、日誌信息表、借款帳單信息表、還款帳單信息表、登陸分析信息表、註冊分析信息表、投資分析信息表、充值分析信息表、充值接口監控信息表、提現分析信息表、提現接口監控信息表。
用戶信息表,包括的數據項有:用戶編號、用戶名、密碼、真實姓名、身份證號碼、託管帳號、鎖定狀態、帳戶餘額、凍結資金、創建時間、最後登錄時間。
管理員信息表,包括的數據項有:管理員編號、用戶名、密碼、創建時間、最後登錄時間。
理財標信息表,包括的數據項有:理財標編號、創建時間、借款人、產品類型、產品標題、借款目的、返款方式、借款金額、借款時間、借款期限、最低投資金額、滿標時間、借款描述、狀態、已投金額、借款進度比例。
平臺內容信息表,包括的數據項有:圖片編號、圖片名稱、圖片地址。
日誌信息表,包括的數據項有:日誌編號、日誌類型、操作內容、操作用戶、操作IP、創建時間。
借款帳單信息表,包括的數據項有:借款編號、借款金額、借款時間、借款標、投資人。
還款帳單信息表,包括的數據項有:還款編號、還款金額、還款時間、借款標、投資人。
登陸分析信息表,包括的數據項有:登陸編號、分析時間、登陸次數。
註冊分析信息表,包括的數據項有:註冊編號、分析時間、註冊人數。
投資分析信息表,包括的數據項有:投資編號、分析時間、統計緯度、統計值。
充值分析信息表,包括的數據項有:充值編號、分析時間、統計緯度、統計值。
充值接口監控信息表,包括的數據項有:充值監控編號、分析時間、返回值、調用次數。
提現分析信息表,包括的數據項有:提現編號、分析時間、統計緯度、統計值。
提現接口監控信息表,包括的數據項有:提現監控編號、分析時間、返回值、調用次數。
本系統的用戶角色分為三類:普通用戶、企業用戶、後臺管理員用戶。這三個用戶的權限如下:
a) 普通用戶權限:登陸前臺頁面,使用帳號密碼登錄系統,開戶、充值、提現、投資;
b) 企業用戶權限:登陸前臺頁面,使用帳號密碼登錄系統,充值、提現、還款;
c) 管理員用戶權限:進入後臺管理系統,對平臺內容、借款標、用戶、財務、系統日誌、日誌分析監控模塊進行管理操作。
如圖5所示,本發明基於雲計算架構的分布式網際網路金融網貸方法,具體包括如下步驟:
S01:普通用戶通過前臺模塊登錄註冊成為會員,當普通用戶完成實名認證和第三方平臺託管開戶後,允許進入個人中心頁面;個人中心頁面,用於顯示帳戶信息以及交易記錄信息,能夠進行充值提現操作,在產品列表中購買上線理財產品;
S02:當普通用戶購買理財產品時,判斷帳戶餘額,當帳戶餘額低於相應的金額時,不能進行購買操作;在支付金額時,連接第三方託管系統,驗證用戶的交易密碼,當交易密碼驗證成功後,用戶產生的購買交易才會成功;
S03:當理財產品滿標後,在後臺管理員審核通過並且主動放款後,將本次借款金額加入企業用戶的帳戶餘額中,企業用戶通過其在第三方託管帳戶上的資金提現到銀行卡;當到了約定還款日期後,企業用戶將相應資金充值到第三方託管帳戶,並在企業用戶端的個人中心頁面將需要還款的理財產品還款,後臺管理員將本金和利息返還至購買該理財產品的普通用戶帳戶內。
當後臺管理員發現平臺普通用戶帳戶有異常時,可以在會員管理中將用戶鎖定,被鎖定的用戶無法登陸,只有後臺管理員用戶將該用戶解鎖後,該用戶才能再次登陸到系統。
後臺管理員在後臺可以對整個金融網貸系統進行管理:平臺內容管理、借款管理、用戶管理、財務管理、系統管理、日誌分析監控管理等。各個功能包含的子功能如下:
a. 平臺內容管理:在本功能中,管理員可以修改首頁宣傳輪播的Banner圖片。
b. 借款管理:在本功能中,管理員可以查看借款中的借款標,滿標的借款標,還款中的借款標,已完成的借款標。新增借款標。
c. 用戶管理:在本功能中,管理員可以查看系統的全部普通用戶,以及企業用戶,可以鎖定用戶和解鎖用戶,編輯用戶的個人信息,查看用戶詳細信息。
d. 財務管理:在本功能中,管理員可以對已經滿標並且審核通過的借款標執行放款操作。
雲伺服器通過日誌分析監控模塊對數據進行實時分析,包括用戶註冊實時數據分析、登錄實時數據分析、充值實時數據分析、系統充值接口實時分析、用戶提現實時數據分析、系統提現接口實時分析、用戶投資分析。
普通用戶註冊後如果不進行第三方平臺託管開戶,那麼用戶就沒有第三方資金託管平臺的帳號,是無法進行充值提現、投資等操作的,所以用戶在完成帳戶註冊的時候,需要登錄帳號,根據引導完成第三方託管平臺帳戶開戶,託管開戶前,需要在金融網貸系統完成實名認證,輸入身份證帳號和真實姓名,然後組織參數,跳轉到第三方託管平臺,繼續完成開戶信息填寫。最後驗證通過,完成開戶,同步回調至金融網貸系統,系統記錄開戶的第三方託管帳號,用戶開戶成功。
如圖6所示,託管開戶的具體流程如下:
a) 用戶登陸後,在金融網貸系統的頁面上輸入身份證號碼和真實姓名,本系統需要記錄用戶的身份證號碼和真實姓名,因為傳遞參數到第三託管平臺時,需要填寫真實姓名和身份證號碼,如果不將身份證號碼和真實姓名做為參數傳遞過去,則需要在第三方頁面上繼續完成填寫,而在第三方平臺完成開戶後並不會回調身份證及真實姓名,所以實名認證在本系統完成並記錄入資料庫。
b) 點擊第三方開戶,組織參數傳遞並跳轉至第三方託管平臺,這裡根據第三方託管平臺的接口文檔規定,所組織的參數要符合接口文檔的長度及類型,需要按照順序拼接成字符串並調用籤名函數。
c) 在第三方頁面上繼續填寫開戶信息,填寫的信息在頁面上有驗證,且要簡訊驗證手機號碼,完成驗證後提交。
d) 第三方託管平臺系統驗證實名制信息,驗證完成後同步回調至金融網貸系統;
e) 回調成功,金融網貸系統提示開戶成功並保存本用戶開戶的第三方託管帳戶帳號。
普通用戶註冊開戶後,並且帳戶內已經充值過,有足夠的帳號餘額時,用戶在瀏覽理財產品,可以購買自己滿意的理財產品。用戶點擊查看某一個理財產品,輸入所需購買的金額後,在打開的第三資金託管平臺的確認頁面輸入交易密碼,交易密碼驗證正確後即可以完成交易,用戶投標理財成功。
如圖7所示,投標理財的具體步驟如下:
a) 用戶查看理財產品詳情頁,輸入購買金額,這裡會在前端驗證輸入的購買金額是否合法,並且會後臺驗證輸入的購買金額是否超過用戶帳戶餘額,已經是否超過該理財產品剩餘可購買金額;
b) 點擊確認投標時組織參數傳遞並跳轉至第三方託管平臺訂單確認頁面,在資金託管平臺的訂單確認頁面會顯示本次投標理財交易的投資人名字、投標金額、訂單編號、投標時間等信息;
c) 待用戶確認交易信息無誤後可以在第三方頁面上輸入交易密碼並提交;
d) 交易密碼驗證正確,用戶在第三方託管平臺的帳戶可用餘額中會扣除投標金額,被扣除的投標金額依然在該用戶的第三方託管帳戶內,只不過這部分資金被凍結了,待金融網貸系統放款時,先調用資金解凍接口再調用放款接口時這筆資金才會被轉入借款人帳戶內。當交易密碼驗證正確後,頁面回調至金融網貸系統,金融網貸系統提示開戶成功並保存本用戶開戶的第三方託管帳戶的帳號信息。
日誌分析監控模塊的實現
首先要在金融網貸系統的日誌中加入需要做日誌分析監控的埋點,將常用的數據項如:接口id、接口名稱、接口調用時間、返回碼、交易金額等信息組裝成JSON,用Log4j打在日誌文件中。接著需要寫Flume的配置文件,指定source,channel,sink。金融網貸系統的Flume配置如下:
agent1.sources = s1
agent1.sinks = k1
agent1.channels = ch1
agent1.sources.s1.type = exec
agent1.sources.s1.shell = /bin/bash -c
agent1.sources.s1.command = tail -n +0 -F /data/tomcat/logs/catalina.out
agent1.sources.s1.channels = ch1
agent1.sources.s1.threads = 5
agent1.sinks.k1.type = logger
agent1.channels.ch1.type = org.apache.flume.channel.kafka.KafkaChannel
agent1.channels.ch1.capacity = 1000
agent1.channels.ch1.transactionCapacity = 100
agent1.channels.ch1.brokerList=localhost:9092
agent1.channels.ch1.topic=loganalysis
agent1.channels.ch1.zookeeperConnect=localhost:2181
agent1.sinks.k1.channel = ch1
由上面的Flume配置文件將tomcat下金融網貸系統打的日誌收集至Kafka的loganalysis這個Topic中。Flume配置文件編寫好之後,需要執行腳本命令來啟動Flume的Agent,啟動命令為:
bin/flume-ng agent -n agent1 -c conf -f conf/flume-conf.properties
日誌實時計算Topology組件設計
日誌實時計算使用了Storm實時計算平臺。
a) 設計的Topology(拓撲)的組件由Kafka-Spout作為Spout讀取Kafka裡的日誌數據;
b) Format-Bolt來解析JSON數據,將JSON格式的日誌數據解析成對象,根據接口Id來分發到不同的Stream中;
c) Invest-Count-Bolt組件負責實時統計不同維度的投資金額;
d) Invest-Insert-Bolt該組件將實時統計出來的不同維度的投資金額筆數等信息通過JDBC來持久化到資料庫中;
e) Login-Count-Bolt該組件實時統計分析用戶登錄狀況;
f) Login-Insert-Bolt該組件將實時分析的用戶登錄情況持久化到資料庫中;
g) Recharge-Code-Insert-Bolt該組件將Recharge-Count-Bolt中實時統計出來的充值接口調用返回碼的信息持久化到數據中;
h) Recharge-Count-Bolt該組件實時監控充值接口的調用情況,統計返回值以及計算返回值的分布情況,該組件也分析充值金額的分布情況;
i) Recharge-Insert-Bolt該組件將Recharge-Count-Bolt中實時統計出來的充值金額持久化到資料庫中;
j) Register-Count-Bolt該組件實時統計分析用戶註冊狀況;
k) Register-Insert-Bolt該組件將實時分析出的用戶註冊情況的數據持久化到資料庫中;
l) Withdraw-Code-Insert-Bolt該組件將Withdraw-Count-Bolt中實時統計出來的提現接口調用返回碼的信息持久化到數據中;
m) Withdraw-Count-Bolt該組件實時監控提現接口的調用情況,統計返回值以及計算返回值的分布情況,該組件也分析提現金額的分布情況;
n) Withdraw-Insert-Bolt該組件將Withdraw -Count-Bolt中實時統計出來的提現金額持久化到資料庫中。Storm的Topology(拓撲)圖如圖8所示。
日誌分析監控的數據通過Storm實時計算後持久化到資料庫中後,需要Web系統來將數據讀取出來,按照監控分析的需求來展示在前臺頁面上。日誌分析監控模塊通過使用SpringMVC和Hibernate來處理請求和讀取資料庫數據。最終使用Highcharts來渲染監控頁面圖表,向用戶展示監控數據。用戶投資金額實時分析的分析監控頁面如圖9所示。
應當理解的是,本發明的上述具體實施方式僅僅用於示例性說明或解釋本發明的原理,而不構成對本發明的限制。因此,在不偏離本發明的精神和範圍的情況下所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。此外,本發明所附權利要求旨在涵蓋落入所附權利要求範圍和邊界、或者這種範圍和邊界的等同形式內的全部變化和修改例。