- p2p
- 资金管理模式
- 名称解释
- 功能模块
- 技术
- 英文单词
- 后台首页
- 分库分表
个人对个人,出借人—>借款人;
资金管理模式
银行存管:
标的: 借款人在p2p平台发布借款信息, 如借款年利率、借款期限、借款金额等。也叫投资项目(project)
发标: 借款人发布借款信息的动作;
投标: 投资人针对某个标的进行出借;
满标: 借款凑够;准备收款;
流标: 长时间没有借够, 借款失败;
接口规范: Swagger
持久化:MyBatis plus
分布式系统配置中心:Apollo
分布式文件系统: 文件服务+ 七牛云
annual rate, 年化利率
borrower annual rate,借款人的年化利率
commission annual rate, 佣金年化率
tender, 投标
balance,账户余额
freeze amount , 冻结金额
project_status,标的(投资项目)状态
collecting 募集中
fully 满标
miscarry 流标
repaying 还款中
审核标的:
python实现:
- 创建transaction_projects应用, 并定义模型类
在这里插入代码片分库分表
MySQL单个数据库存储的数据在5000万以内,性能较好;超出则性能明显下降。
单个表数据在1000万以内,性能较好;
若单表或单库数据量太大,并发量也大,mysql数据库可能会卡死,甚至使系统崩掉!
解决方案: 分库分表
大表拆分为小表;大库拆分为小库。
垂直拆分(字段): 垂直分表;垂直分库
垂直分表,将一个表的字段,分到多个表中,每个表只存储一部分字段!
策略:
- 将热门、冷门的字段分开存放到不同表;
- 将text等大字段单独放入一张表;
- 经常组合查询的字段放入一张表中;
垂直分库,垂直分表只是解决了单表数据量过大的问题,但是数据库还是一个,请求数据时还是抢占一个服务器的CPU、内存、磁盘、IO资源,还需要分库。
垂直分库,就是根据业务耦合度,将表分类,然后将表按照类别分布到不同的数据库(服务器)。
优点:可以解决业务层面的耦合;对不同业务的数据分类管理;一定程度上提升IO性能。
水平拆分(行):水平拆表;水平拆库
水平分表,
水平分库,将同一个表中的数据按照一定规则分到不同的数据库中,如p2p_transaction_0
p2p_transaction_1 两个库中的表及表结构是一个样的。(一个库放入一个服务器)
优点:
- 解决单库数据量大的问题
- join操作可以避免跨库
- 提高系统稳定性
水平分表,同一个表中的行数据,存入不同的表中,但还是在同一个数据库中。
水平分库、分表会增加系统的复杂度。
在系统设计阶段,根据业务耦合度考虑垂直分库、分表;数据量&访问压力不是太大时,考虑缓存、读写分离、索引技术方案;数据量&访问压力极大,考虑水平分库分表。
分库分表的问题:可以解决大数据、高并发的性能瓶颈,但也有缺点。
- 分布式事务问题
- 连接查询问题
- 分页、排序、聚合问题
- 主键冲突问题
解决以上问题:中间件Sharding-JDBC(增强版的JDBC)



