如果你在招聘网站上刷到"金融科技后端开发"的岗位,多半会看到一条要求:有分布式系统经验,了解资金交易流程。这条要求筛掉的人不少——大部分人做过电商、做过管理系统,但没碰过交易撮合、没处理过账户对账,面试时聊到资金安全就只能泛泛而谈。

这门《基于P2P的万信金融项目课程》针对的正是这个缺口。它以一套完整的P2P理财与信贷平台为蓝本,讲的不是金融常识,而是这类系统在工程上到底怎么搭、钱怎么走、账怎么平。下面从编辑角度拆一下:它解决什么场景、学完能做什么、资料适合谁。

它填的是哪一类经验空白

普通业务系统的核心是增删改查,而金融平台的核心是"一笔钱从出借人账户到借款人账户,中间经过投标、撮合、放款、还款、计息,每一步都不能错,错一步就要人工介入对账"。这门课围绕的就是这套流程的工程实现:标的如何发布与满标、投资如何冻结与解冻、债权如何匹配、还款计划如何生成与执行。

另一个绕不开的点是分布式。P2P平台要同时对接交易端和后台业务支撑,用户量上来以后,单库单表撑不住,课程里会涉及服务拆分、数据库分片、缓存与消息队列在资金场景下的用法。这些内容在纯电商项目里也能学到,但金融场景对一致性和幂等的要求更严,这是它区别于普通分布式课程的地方。

学完之后你大概能独立做什么

比较现实的预期是:你能看懂一套金融交易系统的分层结构和模块边界,能独立完成一个账户与交易相关的功能模块,比如充值提现、投标冻结、还款计划生成这类有明确业务规则的功能。遇到"重复请求导致多扣一次钱""并发投标导致超额"这类问题,你知道该从幂等、锁、事务边界哪个方向去排查。

但要说清楚边界:这不是一门教你从零做金融架构的课,也不是风控建模课。它更像一次完整的项目跟做,让你把分布式和资金业务的知识落到具体代码上,而不是停在概念层。想靠它直接转行做量化或风控,方向不对。

资料适合什么基础的人

如果你满足以下条件,学习会比较顺:有 Java 后端基础,熟悉 Spring 体系;用过至少一种关系型数据库并能写多表关联查询;对多线程、事务有基本概念,哪怕只是知道名词。

如果分布式组件(注册中心、消息队列、缓存)你完全没接触过,前期会比较吃力,需要边看边补。完全没有后端经验、只做过前端或测试的同学,建议先补语言和框架基础,否则容易卡在中途。

怎么用这份资料效率更高

  • 先跑通主流程再抠细节。把一次完整的投资到还款走通,比一开始就钻研某个组件的配置更有价值。
  • 把资金相关的环节单独整理成笔记:哪些操作要幂等、哪些要加锁、哪些走异步。这份笔记在面试和实际工作中都能直接用。
  • 遇到对账、计息这类规则,先自己想一遍实现思路,再看课程里的做法,差异之处往往就是你没考虑到的边界情况。
  • 不要只看不写。挑一个模块自己重写一遍,比看完十个视频更能暴露问题。

最后提醒一句:P2P 这个行业本身已经经历过大洗牌,课程的价值不在行业本身,而在它展示的资金交易与分布式实现思路——这套东西放在支付、信贷、账务系统里同样成立。把它当作理解"钱在系统里怎么流动"的一个样本,比当作某个行业的入门课更合适。

课程目录

第一章 万信金融-项目介绍和开发环境搭建(资料在下一章) 项目介绍 day01-1-项目背景 day01-2-项目概述 技术介绍 day01-3-技术架构 day01-4-技术栈和技术解决方案 搭建数据库环境 day01-5-搭建服务器端数据库环境 搭建微服务基础工程 day01-6-微服务基础工程环境配置 day01-7-了解微服务基础工程 day01-8-微服务基础工程测试 配置中心Apollo介绍 day01-9-配置中心简介 day01-10-Apollo简介 day01-11-Apollo初体验 Apollo基本用法 day01-12-搭建Apollo配置中心 day01-13-Apollo核心概念 day01-14-玩转Apollo 微服务集成Apollo客户端 day01-15-微服务集成Apollo客户端 day01-16-搭建使用Apollo环境的微服务基础工程 Swagger的使用 day01-17-Swagger简介 day01-18-SpringBoot集成Swagger day01-19-Swagger常用注解 day01-20-Swagger生成文档 Postman的使用 day01-21-Postman的使用 第二章 万信金融-开户(资料在本章) 搭建前端环境 day02-1-搭建前端环境 项目开发步骤和编码规范 day02-2-开发步骤和编码规范 开户业务需求分析和业务流程 day02-3-开户业务需求分析 day02-4-开户业务流程 实现注册功能 day02-5-注册功能需求分析 day02-6-搭建统一账户微服务 day02-7-测试统一账户微服务 day02-8-部署短信验证码服务 day02-9-获取短信验证码-接口定义 day02-10-获取短信验证码-功能实现 day02-11-获取短信验证码-功能测试 day02-11-获取短信验证码-功能测试 day02-12-Mybatis-Plus简介 day02-13-Mybatis-Plus快速入门 day02-14-Mybatis-Plus-入门案例测试 day02-15-Mybatis-Plus-增删改查操作 day02-16-Mybatis-Plus-条件构造器 day02-17-Mybatis-Plus-分页查询 day02-18-Mybatis-Plus业务层封装 day02-19-异常处理机制 day03-1-校验手机号和验证码-接口定义 day03-2-校验短信验证码功能实现 day03-3-校验手机号功能实现1 day03-4-校验手机号功能实现2 day03-5-校验手机号功能实现3 day03-6-校验手机号和验证码功能测试 day03-7-保存用户信息需求分析 day03-8-统一账户保存信息-定义接口 day03-9-统一账户保存信息-功能实现 day03-10-用户中心保存信息-定义接口 day03-11-用户中心保存信息-搭建MP环境 day03-12-用户中心保存信息-Mapper day03-13-用户中心保存信息-Service-用户是否存在 day03-14-用户中心保存信息-Service-保存用户信息 day03-15-用户中心远程调用统一账户 day03-16-保存用户信息-功能测试 day03-17-注册功能-前后端集成测试 实现传统登录方式并分析问题 day03-18-传统登录实现方式-定义接口 day03-19-传统登录实现方式-功能实现 理解认证、授权和数据安全 day04-1-传统登录实现方式存在的问题 day04-2-认证和授权 day04-3-数据安全的三个问题 day04-4-数据安全-机密性 day04-5-数据安全-完整性 day04-6-数据安全-身份验证 理解各种认证方式 day04-7-基于session认证机制 day04-8-基于token认证机制 day04-9-JWT令牌 day04-10-OAuth2认证机制-介绍 day04-11-OAuth2认证机制-引入P2P项目 实现认证功能 day04-12-P2P项目认证需求分析 day04-13-集成UAA服务 day04-14-认证(登录)功能实现-Feign代理 day04-15-认证(登录)功能实现 day04-16-认证(登录)功能测试 day04-17-认证(登录)功能测试(过网关) day04-18-解析令牌功能测试 day04-19-认证(登录)功能前后端集成测试 实现认证拦截功能 day04-20-认证拦截功能需求分析 day04-21-认证拦截功能环境准备 day04-22-认证拦截功能实现 day05-1-认证拦截测试准备 day05-2-认证拦截功能测试 day05-3-微服务从请求中取数据 理解事务和分布式事务 day05-4-注册功能存在的事务问题 day05-5-什么是事务 day05-6-ACID特性 day05-7-分布式事务 理解分布式事务基础理论 day05-8-CAP理论-场景 day05-9-CAP理论-概述 day05-10-BASE理论 TCC方案 day05-11-TCC解决方案概述 day05-12-TCC案例 Hmily框架 day05-13-Hmily框架简介 day05-14-Hmily实现转账-环境搭建 day05-15-Hmily实现转账-bank1 day05-16-Hmily实现转账-bank2 day05-17-Hmily实现转账-功能测试 day05-18-Hmily实现注册-环境搭建 day05-19-Hmily实现注册-用户中心 day05-20-Hmily实现注册-统一账户 day05-21-Hmily实现注册-功能测试 开户需求分析 day06-1-开户需求分析 部署银行存管系统 day06-2-部署银行存管系统 实现开户功能 day06-3-开户第一阶段-定义接口1 day06-4-开户第一阶段-定义接口2 day06-5-开户第一阶段-功能实现1 day06-6-开户第一阶段-功能实现2 day06-7-开户第一阶段-功能实现3 day06-8-开户第一阶段-功能实现4 day06-9-开户第一阶段-功能实现5 day06-10-开户第一阶段-功能实现6 day06-11-开户第一阶段-功能实现7 day06-12-开户第一阶段-功能实现8 day06-13-开户第一阶段-功能实现9 day06-14-开户第一阶段-功能测试 day06-15-开户第一阶段-遗留功能测试 day06-16-开户第二阶段 day06-17-开户第三阶段-问题分析 day06-18-开户第三阶段-搭建MQ环境 day06-19-开户第三阶段-功能实现1 day07-1-开户第三阶段-功能实现2 day07-2-开户第三阶段-功能实现3 day07-3-开户第三阶段-功能实现4 day07-4-开户第三阶段-功能实现5 day07-5-开户第三阶段-功能实现6 day07-6-开户第三阶段-功能实现7 day07-7-开户第三阶段-功能测试 第三章 万信金融-发标 发标需求分析 day07-8-发标-需求分析 分库分表 day07-9-分库分表的原因 day07-10-垂直分表 day07-11-垂直分库 day07-12-水平分库分表 Shardind-JDBC day07-13-分库分表带来的问题 day07-14-Sharding-JDBC概览 day07-15-Sharding-JDBC核心功能1 day07-16-Sharding-JDBC核心功能2 day07-17-入门案例-需求分析和数据库设计 day07-18-入门案例-搭建数据库环境1 day07-19-入门案例-搭建数据库环境2 day07-20-入门案例-搭建数据库环境3 day08-1-入门案例-功能实现1 day08-2-入门案例-功能实现2 day08-3-入门案例-功能实现3 day08-4-入门案例-功能实现4 day08-5-入门案例-功能测试 P2P项目分库分表 day08-6-P2P项目分库分表 交易中心微服务环境搭建 day08-7-交易中心微服务环境搭建 用户发标业务需求分析 day08-8-用户发标-需求分析 交易中心保存标的信息 day08-9-交易中心保存标的-定义接口 day08-10-交易中心保存标的-DAO day08-11-交易中心保存标的-业务层1 day08-12-交易中心保存标的-业务层2 day08-13-交易中心保存标的-业务层3 day08-14-交易中心保存标的-Controller day08-15-交易中心保存标的先决条件 day08-16-交易中心保存标的-前后端集成测试1 day08-17-交易中心保存标的-前后端集成测试2 部署管理平台前端工程 day08-18-部署管理平台前端工程 实现查询标的信息 day08-19-查询标的信息-定义接口 day08-20-查询标的信息-功能实现1 day08-21-查询标的信息-功能实现2 day08-22-查询标的信息-前后端集成测试 实现审核标的功能 day09-1-审核标的-定义接口 day09-2-审核标的-交易中心-功能实现1 day09-3-审核标的-交易中心-功能实现2 day09-4-审核标的-存管代理-功能实现1 day09-5-审核标的-存管代理-功能实现2 day09-6-审核标的-完善Controller day09-7-审核标的-前后端集成测试 幂等性问题分析及实现 day09-8-审核标的-幂等性-问题分析 day09-9-审核标的-幂等性-解决思路 day09-10-审核标的-幂等性-功能实现 day09-11-幂等性-测试准备 day09-12-幂等性-功能测试 使用ES&logstash实现标的快速检索 day09-13-标的快速检索-需求分析 day09-14-标的信息检索-ES环境搭建 day09-15-标的快速检索-logstash环境搭建 day09-16-标的快速检索-使用logstash1 day09-17-标的快速检索-使用logstash2 day09-18-标的快速检索-logstash测试 实现标的信息检索功能 day10-1-标的信息检索-开发环境搭建 day10-2-标的信息检索-交易中心-定义接口 day10-3-标的信息检索-交易中心-功能实现 day10-4-标的信息检索-内容检索服务-定义接口 day10-5-标的信息检索-内容检索服务-功能实现1 day10-6-标的信息检索-内容检索服务-功能实现2 day10-7-标的信息检索-功能测试 第四章 万信金融-投标放款 用户投标业务需求分析 day10-8-用户投标-业务概述 day10-9-用户投标-需求分析 实现投标预览功能 day10-10-投标预览-定义接口 day10-11-投标预览-接口1-功能实现1 day10-12-投标预览-接口1-功能实现2 day10-13-投标预览-接口1-功能实现3 day10-14-投标预览-接口1-功能测试 day10-15-投标预览-接口2-功能实现 day10-16-投标预览-接口2-功能测试 day10-17-投标预览-接口3-功能实现 day10-18-投标预览-接口3-功能测试 day10-19-投标预览-前后端集成测试 实现用户投标功能 day11-1-用户投标-定义接口 day11-2-用户投标-功能实现1 day11-3-用户投标-功能实现2 day11-4-用户投标-功能实现3 day11-5-用户投标-功能实现4 day11-6-用户投标-功能实现5 day11-7-用户投标-功能实现6 day11-8-用户投标-功能实现7 day11-9-用户投标-功能实现8 day11-10-用户投标-功能实现9 day11-11-用户投标-功能实现10 day11-12-用户投标-功能实现11 day11-13-用户投标-前后端集成测试 满标放款需求分析和接口定义 day11-14-满标放款-需求分析 day11-15-满标放款-定义接口1 day11-16-满标放款-定义接口2 day11-17-满标放款-定义接口3 day11-18-满标放款-定义接口4 满标放款功能实现 day12-1-满标放款-接口1-功能实现1 day12-2-满标放款-接口1-功能实现2 day12-3-满标放款-接口1-功能实现3 day12-4-满标放款-接口1-功能实现4 day12-5-满标放款-接口1-功能实现5 day12-6-满标放款-接口1-功能实现6 day12-7-满标放款-接口2-功能实现 day12-8-满标放款-接口3-功能实现 day12-9-满标放款-接口4-功能概述 day12-10-满标放款-接口4-Mapper day12-11-满标放款-接口4-业务层-获取相关数据 day12-12-满标放款-接口4-业务层-生成还款计划 day12-13-满标放款-接口4-业务层-保存还款计划 day12-14-满标放款-接口4-业务层-生成投资人应收明细 day12-15-满标放款-接口4-Controller day12-16-满标放款-前后端集成测试 可靠消息实现最终一致性 day12-17-可靠消息实现最终一致性-概述 day12-18-可靠消息实现最终一致性-RocketMQ day13-1-可靠消息实现最终一致性-入门案例-环境搭建 day13-2-可靠消息实现最终一致性-入门案例-bank1-数据访问层 day13-3-可靠消息实现最终一致性-入门案例-bank1-业务层 day13-4-可靠消息实现最终一致性-入门案例-bank1-执行本地事务 day13-5-可靠消息实现最终一致性-入门案例-bank1-回查事务 day13-6-可靠消息实现最终一致性-入门案例-bank1-controller day13-7-可靠消息实现最终一致性-入门案例-bank2-业务层 day13-8-可靠消息实现最终一致性-入门案例-bank2-消费消息 day13-9-可靠消息实现最终一致性-入门案例-功能测试 解决满标放款业务中的事务问题 day13-10-解决满标放款业务中的事务问题-问题分析 day13-11-解决满标放款业务中的事务问题-交易中心-发送消息 day13-12-解决满标放款业务中的事务问题-交易中心-事务监听器 day13-13-解决满标放款业务中的事务问题-还款服务 day13-14-解决满标放款业务中的事务问题-功能测试 第五章 万信金融-用户还款 用户还款需求分析 day13-15-用户还款-需求概述 day13-16-用户还款-需求分析 用户还款功能实现 day13-17-用户还款-第一阶段-定义接口 day14-1-用户还款-第一阶段-实现接口1 day14-2-用户还款-第一阶段-实现接口2 day14-3-用户还款-第一阶段-业务触发入口 day14-4-用户还款-第一阶段-功能测试 day14-5-用户还款-第二阶段-功能实现 day14-6-用户还款-第二阶段-业务触发入口 day14-7-用户还款-第二阶段-功能测试 day14-8-用户还款-第三阶段-业务分析 day14-9-用户还款-第三阶段-发送消息 day14-10-用户还款-第三阶段-本地事务1 day14-11-用户还款-第三阶段-本地事务2 day14-12-用户还款-第三阶段-消息监听 day14-13-用户还款-第三阶段-业务触发入口 day14-14-用户还款-第四阶段-定义接口 day14-15-用户还款-第四阶段-功能实现1 day14-16-用户还款-第四阶段-功能实现2 day14-17-用户还款-第四阶段-消费消息 day14-18-用户还款功能测试 任务调度和分布式任务调度 day14-19-任务调度概述 day14-20-分布式任务调度概述 Elastic-Job介绍 day14-21-Elastic-Job简介 day14-22-Elastic-Job重要概念 day15-1-cron表达式 Elastic-Job入门案例 day15-2-快速入门-环境搭建 day15-3-快速入门-数据访问层 day15-4-快速入门-任务类 day15-5-快速入门-zookeeper配置类 day15-6-快速入门-elastic-job配置类 day15-7-快速入门-运行效果 实现定时还款任务 day15-8-定时还款任务-基础配置 day15-9-定时还款任务-数据访问层 day15-10-定时还款任务-业务层 day15-11-定时还款任务-任务类 day15-12-定时还款任务-配置类 day15-13-定时还款任务-功能测试 实现还款短信提醒功能 day15-14-还款短信提醒-腾讯云概述和环境准备 day15-15-还款短信提醒-定义接口 day15-16-还款短信提醒-还款提醒功能-准备工作 day15-17-还款短信提醒-还款提醒功能实现 day15-18-还款短信提醒-发送还款短信-功能实现 day15-19-还款短信提醒-功能测试 day15-20-定时还款短信提醒 第六章 万信金融-项目总结&就业指导 项目业务总结 day16-1-行业简介 day16-2-项目概述 day16-3-功能架构 day16-4-技术架构 day16-5-整体业务 day16-6-关键业务1 day16-7-关键业务2 项目技术总结 day16-8-易问技术-配置中心 day16-9-易问技术-UAA day16-10-易问技术-分库分表 day16-11-易问技术-读写分离 day16-12-易问技术-分布式事务 day16-13-易问技术-TCC day16-14-易问技术-RocketMQ事务消息实现最终一致性 day16-15-易问技术-分布式定时任务 day16-16-易问技术-ElasticSearch day16-17-易问技术-Logstash day16-18-易问技术-数据安全 项目管理总结 day16-19-项目管理 第七章 万信金融-项目实战 项目实战整体安排 1.项目实战整体安排 充值功能实战 2.充值-业务概述 3.充值-需求分析 4.充值-接口定义 提现功能实战 5.提现-业务概述 6.提现-需求分析 7.提现-接口定义 身份认证功能实战 8.身份认证-业务概述 9.身份认证-需求分析 10.身份认证-文件服务 11.身份认证-百度AI服务 12.身份认证-接口定义 项目部署实战 1.DevOps介绍 2.使用Docker Compose部署项目 3.持续集成的作用 4.持续集成介绍 5.Gogs的安装和使用 6.Jenkins的安装和配置 7.Jenkins构建任务测试 8.Jenkins自动构建任务 第八章 万信金融-微服务高级部分 服务调用链路追踪的理解和使用 1.服务调用链路追踪-学习目标 2.服务调用链路追踪-问题分析 3.服务调用链路追踪-解决方案 4.服务调用链路追踪-快速上手 5.服务调用链路追踪-入门案例 6.服务调用链路追踪-功能测试 Zipkin的理解和使用 7.Zipkin简介 8.Sleuth&Zipkin集成案例 9.Sleuth&Zipkin集成测试 10.Zipkin&Elasticsearch集成 11.Zipkin依赖分析 12.万信金融P2P项目实行服务调用链路追踪 Sentinel的理解和使用 13.Sentinel实现限流-学习目标 14.Sentinel问题分析 15.Sentinel简介 16.Sentinel入门案例 17.Sentinel入门案例-功能测试 18.SentinelDashboard图形化控制台 19.Sentinel限流规则参数 20.Sentinel动态规则 21.Sentinel网关限流 万信金融P2P项目实现网关限流 22.万信金融P2P项目实现网关限流 23.万信金融P2P项目网关限流测试 Hystrix的理解和使用 24.Hystrix学习目标 25.服务熔断概述 26.Hystrix简介 27.Hystrix&Feign入门案例 万信金融P2P项目实现服务熔断 28.万信金融P2P项目实现服务熔断 29.万信金融P2P项目熔断测试