基于P2P万信金融--day01 分布式事务
本次國慶做的是萬信金融項目,可以利用本次的時間在熟悉熟悉里面的Swaggui和Apllo項目的相關經驗,可以增強自己對里面各個中間件,熟悉里面的過程,了解項目流程。下面這個是項目介紹的相關背景,這個就是最新的P2P的項目。
下面是項目的初始化的過程,里面包含由項目的各個部分,接下來則分別各個介紹,則進行部分講解
1 項目介紹
1.1 項目背景?
P2P金融又叫P2P信貸,P2P是 peer-to-peer 或 person-to-person 的簡寫,意思是個人對個人,P2P金 融是指個人與個人間的小額借貸交易,一般需要借助電子商務專業網絡平臺幫助借貸雙方確立借貸關系 并完成相關交易手續。
目前,國家對P2P行業的監控與規范性控制越來越嚴格,出臺了很多政策來對其專項整治,P2P平臺之 前所采用的“資金池模式”與“第三方支付托管”(見下文定義)已經不合規了,國家主張采用“銀行存管模 式”來規避P2P平臺挪用借投人資金的風險,通過銀行開發的“銀行存管系統”管理投資者的資金,每位 P2P平臺用戶在銀行的存管系統內都會有一個獨立賬號,P2P平臺來管理交易,做到資金和交易分開, 讓P2P平臺不能接觸到資金,就可以一定程度避免資金被挪用的風險。
什么是資金池模式?
此模式下,投資人利用第三方支付/銀行的通道先把資金打到平臺的銀行賬戶,P2P的平臺就池子一樣, 匯聚了投資人和借款人的資金,這個匯集資金的池子叫做資金池,是P2P平臺方最容易跑路的模式。
什么是第三方支付托管模式?
此模式下,投資人/借款人除了要在P2P平臺注冊外,還要在第三方支付平臺注冊,也就是平臺和第三方 各有一套賬戶體系。經過第三方支付的資金托管后,由于資金沉淀發生在第三方支付在銀行的備付金賬 戶上,P2P平臺運營方只能看到投資人/借款人賬戶余額的變化及債權匹配關系,不能像資金池那樣擅自 挪用投資人的錢,但是這里存在安全風險的是第三方支付機構。
什么是銀行存管模式?
此種模式下,涉及到2套賬戶體系,P2P平臺和銀行各一套賬戶體系。投資人在P2P平臺注冊后,會同時 跳轉到銀行再開一個電子賬戶,2個賬戶間有一一對應的關系。當投資人投資時,資金進入的是平臺在 銀行為投資人開設的二級賬戶中,每一筆交易,是由銀行在投資人與借款人間的交易劃轉,P2P平臺僅 能看到信息的流動。
?
1.2 項目概述?
本次課程開發的萬信金融是一款面向互聯網大眾提供的理財服務和個人消費信貸服務的金融平臺,依托 大數據風控技術,為用戶提供方便、快捷、安心的P2P金融服務。本項目包括交易平臺和業務支撐兩個 部分,交易平臺主要實現理財服務,包括:借錢、出借等模塊,業務支撐包括:標的管理、對賬管理、 風控管理等模塊。項目采用先進的互聯網技術進行研發,保證了P2P雙方交易的安全性、快捷性及穩定性.
1.3 功能模塊
1.4 核心業務流程
2.1 技術架構?
萬信金融采用當前流行的前后端分離架構開發,由用戶層、UI層、微服務層、數據層等部分組成,為 PC、App、H5等客戶端用戶提供服務。下圖是系統的技術架構圖:
2.2 技術棧
重點了解微服務技術棧:萬信金融服務端基于Spring Boot構建,采用Spring Cloud微服務框架。 1)基礎設施
業務數據持久化采用MySQL,數據緩存采用Redis,采用RocketMQ的事務消息機制完成部分場景下的 分布式事務控制,采用Elasticsearch完成標的信息搜索,與自研的分布式文件系統進行接口完成文件上 傳與分布式存儲。
2)組件 系統微服務基于SpringBoot+SpringCloud開發,數據庫連接池采用Druid,POJO構建采用Lombok,日 志系統采用Log4j2,Guava工具類庫,Mybatis Plus持久層接口實現,Sharding-jdbc分庫分表組件, Swagger接口規范組件,Elastic-job分布式任務調度組件,sentinel限流組件。
3)接入 Zuul網關完成客戶端認證、路由轉發等功能,Ribbon完成客戶端負載均衡,Feign完成微服務遠程調 用,Hystrix完成熔斷降級處理,JWT提供前后端令牌管理方案。
4)視圖
平臺支持H5、App等各種前端
2.3 技術解決方案
1、微服務技術應用于P2P金融業務解決方案 2、接口規范SpringBoot+Swagger
3、持久層編碼 MyBatis Plus 4、分布式系統配置中心:Apollo
5、UAA認證方案:Spring Security Oauth2+JWT+ZUUL
6、分布式事務解決方案(RocketMQ、Hmily、requestNo同步機制)
7、分庫分表解決方案:Sharding-jdbc
8、分布式任務調度方案:Elastic-job
9、安全交易方案:HTTPS+SHA1withRSA
10、身份認證方案:百度AI
11、短信驗證系統方案:短信驗證服務+第三方短信平臺(騰訊)
2.4 軟硬件環境
windows 7以上操作系統(64位)
至少8G內存,推薦12G以上 JDK 8+
Maven 3.2+ IDEA 2018+ MySQL 5.6.5
萬信金融 -開發環境搭建
1 服務端搭建
1.1 數據庫環境
本項目使用MySQL數據存儲數據。
1)安裝MySQL數據庫(v5.6.5+) 端口號默認使用3306,請自行安裝并啟動MySQL數據庫
2)執行下列SQL腳本導入數據 執行wanxinp2p-init.sql
創建P2P平臺數據庫并導入初始數據 執行wanxindepository-init.sql 創建銀行存管系統數據庫并導入初始數據
1.2 微服務基礎工程?
1.2.1 開發工具配置?
服務端工程使用Intellij IDEA開發(請使用2018以上的版本)。 1、直接用IDEA打開課件提供的基礎工程wanxinp2p(在day01課件的代碼文件夾中)。
2、配置maven環境 關于maven倉庫有以下配置方法:
1)在setting.xml中配置私服地址(企業最常用)
2)從中央倉庫下載 不作任何配置,maven自行從中央倉庫下載。
3)使用本地倉庫(學習期間使用) 本課程使用本地倉庫配置。
1.2.2 了解基礎工程?
1)直接用IDEA打開課件提供的基礎工程wanxinp2p(在day01課件的代碼文件夾中),打開后的基礎工 程結構如下圖所示
?
wanxinp2p:這是整個項目的父工程,管理依賴環境
wanxinp2p-api : 存放整個項目的API( 接口+各種實體類 )
wanxinp2p-common: 存放整個項目的通用組件( 各種業務封裝類+工具類 )
wanxinp2p-gateway-service :網關微服務,端口號53010
wanxinp2p-consumer-service:用戶中心微服務,端口號53050
wanxinp2p-discover-server:服務注冊中心(Eureka),端口號5300
2)基礎工程關系
1.3 Apollo配置中心?
在動手編程之前需要先學習下Apollo配置中心,本項目中各個微服務的大部分配置信息由Apollo統一管理
1.4.2 打開基礎工程(Apollo環境)并測試?
在“代碼”文件夾中,有一個“wanxinp2p_apollo”項目,這是使用Apollo環境的微服務基礎工程,直接右 鍵用IDEA打開即可,可以瀏覽一下這些基礎工程與前面的變化。
分別啟動這幾個基礎工程,然后進行測試:
1、訪問Eureka服務注冊中心
2、直接訪問一個Controller進行測試
2.1.4 Swagger生成文檔
總結
以上是生活随笔為你收集整理的基于P2P万信金融--day01 分布式事务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Typora提示测试版过期,继续免费试用
- 下一篇: 最大化互信息