本次国庆做的是万信金融项目,可以利用本次的时间在熟悉熟悉里面的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 分布式事务相关推荐

  1. 基于P2P万信金融-- 万信金融项目之业务大总结(文末附代码地址)

    一.项目介绍 1. 行业简介 P2P金融又叫P2P信贷.其中,P2P是 peer-to-peer 或 person-to-person 的简写,意思是:个人对个 人.P2P金融指个人与个人间的小额借贷 ...

  2. 基于P2P万信金融--day02 万信金融项目开户流程业务

    万信金融这个项目是属于银行类得项目,整体开发难度其实就算写接口和简单得增删改查,通过这个项目也是熟悉了Apollo得配置和简单得Swagger得配置,其实主要得业务逻辑还是要看银行得业务,我在第一天得 ...

  3. 基于P2P万信金融--day07 万信金融项搭建用户开发业务逻辑整体项目

    3 用户开户 3.1 需求分析 开户是指借款用户和投资用户在注册后.交易前都需要在银行存管系统开通个人存管账户,在开户流程 中银行存管系统是一个很重要的系统,它是当前P2P平台最常见的一种模式,为了保 ...

  4. 分布式事务框架_1024开源首发 | 金融级分布式事务框架 TXLE

    金融级分布式事务框架 TXLE Distributed Transaction Solution 在 2017 年和 2018 年的 10 月 24 日,爱可生开源社区出品了 MySQL 分布式中间件 ...

  5. 基于可靠消息方案的分布式事务(四):接入Lottor服务

    在上一篇文章中,通过Lottor Sample介绍了快速体验分布式事务Lottor.本文将会介绍如何将微服务中的生产方和消费方服务接入Lottor. 场景描述 生产方:User服务 消费方:Auth服 ...

  6. 基于可靠消息方案的分布式事务:Lottor介绍

    前言:笔者最近实现了基于可靠消息方案的分布式事务:Lottor.本文将会介绍Lottor的概况,在后续系列文章介绍具体的实现,欢迎关注. 分布式事务 分布式事务是指事务的参与者.支持事务的服务器.资源 ...

  7. Spring Boot之基于Dubbo和Seata的分布式事务解决方案

    转载自 Spring Boot之基于Dubbo和Seata的分布式事务解决方案 1. 分布式事务初探 一般来说,目前市面上的数据库都支持本地事务,也就是在你的应用程序中,在一个数据库连接下的操作,可以 ...

  8. base cap 分布式_干货分享:基于本地消息表的分布式事务解决方案总结

    前段时间学习了分布式事务的几种方案,下面主要总结下基于本地消息表实现可靠消息最终一致性的分布式事务方案. 1,什么是分布式事务? 在传统架构中往往是一个单体架构,一个系统就对应一个war包,然后这个系 ...

  9. 基于RabbitMQ消息队列的分布式事务解决方案 - MQ分布式消息中间件实战

    基于RabbitMQ消息队列的分布式事务解决方案 - MQ分布式消息中间件实战 参考文章: (1)基于RabbitMQ消息队列的分布式事务解决方案 - MQ分布式消息中间件实战 (2)https:// ...

最新文章

  1. redis成长之路——(一)
  2. sqlserver concat 字符串位数不够左侧补0_一文搞懂Python字符串格式化
  3. -----IT男生涯————初始篇
  4. visual studio2008 OpenGL开发配置
  5. Flexible 弹性盒子模型之CSS flex-shrink 属性
  6. java slot_LocalVariableTable之 Slot 复用
  7. Step By Step 搭建 MySql MHA 集群
  8. C# Attribute(中)——Attribute本质论
  9. scss提取 vue_vue 中使用sass实现主体换肤
  10. Linux网络协议栈:网卡收包分析
  11. [转]《牵一只蜗牛去散步》台湾 张文亮
  12. C++学习第六天——数组
  13. 让人寒心,义工丛飞资助的是一群白眼狼?
  14. Hexo博客主题Next添加动态线条背景canvas_nest
  15. [Java] Comparator接口/compare方法的介绍与使用
  16. VS2019 error C2855: 命令行选项“/source-charset”与预编译头不一致(Charsets inconsistent with precompiled heade)
  17. 计算机网络有很多用处,计算机网络的概念、基本组成和用途
  18. 股票应用开发——网络数据的获取(一)
  19. python结束任务之后如何关闭_如何终止python程序运行
  20. nextjs 错误日志收集

热门文章

  1. 新站的几种简单的推广方法
  2. 如何提拔骨干及挑选接班人
  3. 马云接班人为什么是张勇?
  4. Dota2预测英雄死亡
  5. uniapp开发小程序使用腾讯云IM(初始化配置,登录,监听,加群)
  6. JQuery之常用插件
  7. 21闭关修炼 习题分册
  8. 《大道至简》的幕后故事(3):“愚公移山记”事物篇
  9. Ubuntu16.04+GT720M + Cuda8.0+py-faster-rcnn(caffe)
  10. wps2016抢先版_了解抢先体验游戏