理财平台架构分析

  一个理财平台可以从不同的维度来看。对于一个消费者来说,最宏观的看法,P2P公司的理财平台相当于一个中介,一边用于对接用户,一边用于对接产品提供商。这个中介系统负责用户和产品提供者之间的交互。对于一个P2P理财公司来说,最核心的两个模块是财务账目模块和运行模块。其他的模块都是基于这两个核心来扩展的。

  1. 把登陆模块单独拎出来,是为了日后进行登陆安全控制;追踪客户记录进行大数据分析;
  2. 概念:结算和清算,清算是两个系统之间,如P2P公司和银行之间,是发生在两个独立系统结算之外的。结算则是本系统内的一种账务计算,它只限于本系统。

什么是好的架构系统?看上面的业务架构图,它严格的定义了各个模块的边界。对于一个需求,我们写在哪个系统的哪个部分,都唯一确定,而不会产生模棱两可的状况。码农所做的工作就是在相应的格子中填充代码,完成相应的单元测试。架构的设计要解耦,比如一个客户购买P2P公司的一款理财产品,他在H5端下单付钱,P2P公司的理财平台要对接到银行,从客户的银行卡扣钱,银行扣钱成功要通知P2P平台,这个通知很大概率是收不到的。这就涉及到了消息传递的同步和异步。我们先举个例子,A在微信上向B发了一条微信消息,A立即接受到了发送成功,但是此时消息只是到达了A服务器,(假如A服务器有足够策略保证把接受到的消息发送到B服务器,再递推到B客户)。这就是简单的同步和异步问题。如果你问我同步好?还是异步好,一般公司的是先采用同步方式,后采用异步方式,因为异步方式需要单独的开发消息传送机制。而且是当数据体量特别大的时候,才去采用异步方式来提高效率。

OP平台的全称是Operation Platform,看上面的图:

  1. 图的最左侧,运营平台面向的对象是:产品人员(录标)、结算人员、客服人员和管理人员(测试人员,开发人员等)。
  2. 运营平台依赖于财务系统、会员系统、交易系统、合同系统。客户和平台之间的每次交易都一份合同,当然是电子合同。
  3. OP系统要做的工作是途中所标注的那些模块,这是技术研发人员向管理者和运营人员、市场人员、测试人员开放的接口。

如上图所示,是P2P理财平台的表结构的设计:

  1.  大致分为七大类,当然随着项目的运维后续还会陆续的有扩表(尤其适合后台管理部分的表结构),粗看表结构的命名规则包括有:T_、P_、OP_、相应的分别表示Trade(交易平台)、Produce(产品平台)、Operation Platform(运营平台)。
  2. 在变量的字段定义中,主要使用的类型只有:varchar(128)、char(1)、date、number(15)这四种,稍微提及一下,char的长度是固定的、varchar的长度是可变化的;char的效率比varchar效率高<这也是标记状态的字段一般均使用char(1)来定义数据类型>,因为char初始化时已经在硬盘上申请好了空间,而varchar在使用时才分配空间,所以使用时要先分配空间,故而效率低;date是日期类型,具体显示成什么样子那是显示问题,它的本质上还是一个日期类型。number类型是存数字的,varchar和char毕竟存的是字符串;当然了number(5)表示存5位整数,number(5,2)表示存5位数,其中2位小数。<如果表的主键用NUMBER类型,在用“SELECT * FROM TEST WHERE ID = xxx”这种类型的SQL语句时比之VARCHAR类型的要快?因为VARCHAR类型如果较长的话,数据库将会逐个逐个字符比较,这样,它找出该条记录的速度比较慢。>
  3. 重点看一下会员表,因为任何一个系统:电商平台、互联网金融、在线教育、O2O都需要保存用户的登陆记录。T_Login_Token表,token的原则是注册或首次登陆成功后下发,每次登陆成功后修改,同时这个表中还记录了登陆的设别手机型号,序列号等详细设备信息。T_Login_History对登陆历史做了记录,以后可以用于用户行为监控,以及万一出现金融事故之后,可以查找线索。另外还有对接第三方的短信验证表、银行卡表、身份证验证表。

上图的表示详细的表结构,应该蛮详细的,尤其是对设备号的跟踪,登陆token的记录等。

 

接下来,再来回顾一下系统依赖图, 对于用户来说,他们的视角是ios、android、pc、h5四个入口,这四个入口用于对外展现公司的产品目录,大部分情况下他们的交互是与后台通过接口来交互,也有少部分情况需要不同的设备之间进行交互。对于后台的交互,Controller对于相应的请求request,做出相应的业务逻辑处理后,封装到response返回给四个终端。

上图所示,定义的接口规范是用于终端和后台进行的数据交互,最常用的可以使用jQuery封装好的ajax来获取请求。下面是一个Android客户端需要调用H5的时候定义的一些公共接口文档。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql数据压缩存储_压缩文本,然后存储在mysql数据库中

I am developing a web application using php and MySQL. I am compressing the text using gzcompress() php function before storing in MySQL database / storing compressed form of text in database. My Question is that is this OK? to store compressed form? Or …

Abp VNext 集成sharding-core 分表分库

ShardingCore 易用、简单、高性能、普适性&#xff0c;是一款扩展针对efcore生态下的分表分库的扩展解决方案,支持efcore2的所有版本,支持efcore2的所有数据库、支持自定义路由、动态路由、高性能分页、读写分离的一款组件&#xff0c;如果你喜欢这组件或者这个组件对你有帮助请…

引热议!多所高校明文规定:不再给部分全日制研究生安排宿舍

全世界只有3.14 % 的人关注了爆炸吧知识本文转自募格学术。近日&#xff0c;高校宿舍问题频发。矛盾点基本都集中在宿舍加塞人&#xff0c;宿舍环境不好&#xff0c;为了迎接新生强制老生搬宿舍但宿舍环境一言难尽等...... 不过好歹也都算解决了研究生住宿的问题。但近日&#…

Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果

Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果 使用忍者飞镖创建粒子效果 游戏中&#xff0c;诸如烟、火、水滴、落叶等粒子效果&#xff0c;都可以使用粒子系统&#xff08;particle system&#xff09;来实现。例如&#xff0c;《明朝传奇》中的篝火&#xff0c;如图2-3…

落在我手里,今天你能嫁出去算我输!

1 今天你能嫁出去算我输▼2 好像拍到了某些不可描述的画面▼3 猫猫&#xff1a;人呢&#xff1f;掉哪儿了&#xff1f;▼4 像极了下决心运动的你▼5 据最新研究欲火焚身这个词是很有科学依据的▼6 按这么说至少能保证说上话▼7 这不是普通狗仔了已经是海狗仔了▼你点的每…

记一次 .NET 某资讯论坛 CPU爆高分析

大概有11天没发文了&#xff0c;真的不是因为懒&#xff0c;本想前几天抽空写&#xff0c;不知道为啥最近求助的朋友比较多&#xff0c;一天都能拿到2-3个求助dump&#xff0c;晚上回来就是一顿分析&#xff0c;有点意思的是大多朋友自己都分析了几遍或者公司多年的牛皮藓问题&…

内存调试技巧

内存调试技巧 2007 年 6 月 21 日 本文将带您了解一些良好的和内存相关的编码实践&#xff0c;以将内存错误保持在控制范围内。内存错误是 C 和 C 编程的祸根&#xff1a;它们很普遍&#xff0c;认识其严重性已有二十多年&#xff0c;但始终没有彻底解决&#xff0c;它们可能严…

数学课本上的几大变态之处

全世界只有3.14 % 的人关注了爆炸吧知识数学课本上的几大变态--完--

使用Redis set 解决数据的唯一性问题

前言最近遇到一个问题&#xff0c;就是接收第三方数据的时候&#xff0c;类似这种直播数据&#xff0c;由于业务的缘故&#xff0c;导致对方给的数据每次都是全量的&#xff0c;而且请求很频繁&#xff0c;有时候一秒好几十次。直播数据一般都是刷刷刷的&#xff0c;这个大家或…

mysql集群从节点无法启动_一次galera cluster集群故障节点无法启动问题排查

现象环境&#xff1a;Server version: 10.0.25-MariaDB-wsrep MariaDB Server, wsrep_25.13.raf7f02e配置文件&#xff1a;[rootnode-23 mariadb]# more /etc/my.cnf[mysqld]server_id3bind_address node-23port 3306datadir/var/lib/mysqllog-error/var/log/mariadb/mariadb…

webform 页面传值的方法总结

ASP.NET页面之间传递值的几种方式 页面传值是学习asp.net初期都会面临的一个问题&#xff0c;总的来说有页面传值、存储对象传值、ajax、类、model、表单等。但是一般来说&#xff0c;常用的较简单有QueryString&#xff0c;Session&#xff0c;Cookies&#xff0c;Application…

iNeuOS工业互联网操作系统,智慧用电测控应用案例

目 录1. 概述... 22. 系统部署结构... 23. 用电测控终端... 34. 系统应用介绍... 61. 概述通过物联网技术对引发电气火灾的主要因素(导线温度、电流和漏电流等)进行不间断的数据跟踪与统计分析&#xff0c;实时发现电气线路和用电设备存在的安全隐…

出现了!豆瓣最高9.9分,2020年最值得看的美剧!你居然还没看过?【内附资源】...

全世界只有3.14 % 的人关注了爆炸吧知识在调性普遍黄暴烧脑的美剧大流中&#xff0c;《This is us》没有大牌主演&#xff0c;没有炫酷特效&#xff0c;却让观众集体沦陷&#xff0c;被称为5年难得一见的美剧。有人说&#xff0c;这是「有生之年看过的最温柔的美剧」。但它取得…

C# 修改配置文件进行窗体logo切换

01—前言&#xff1a;题外的话大家可能发现这个号现在原创越来越少了&#xff0c;其实小编并没有放弃持续更新&#xff0c;只是把一手原创放到了 【dotnet编程大全】这个号了&#xff0c;那个号目前原创主要更新的是wpf mvvm方面的知识&#xff0c;框架用的Caliburn.Micro&…

数学有趣地超乎你的想象

全世界只有3.14 % 的人关注了爆炸吧知识说起数学你是拒绝还是喜欢看完这一组&#xff0c;对于数学他的震撼、霸气、美来感受下哇1三角形内角和为1802多边形外角和为360&#xff08;图来源于可乐学习&#xff09;3怎样将一个正三角形剪拼成正方形&#xff1f;4怎样把两正方形剪拼…

使用C#像google/zx一样编写脚本

google/zxzx是谷歌开源的一个能够帮助开发者快速编写脚本的工具&#xff0c;它使用JavaScript作为编程语言。示例脚本如下&#xff1a;#!/usr/bin/env zxawait $cat package.json | grep namelet branch await $git branch --show-current await $dep deploy --branch${branch…

redis 查询缓存_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....

在实际的工作项目中&#xff0c; 缓存成为高并发、高性能架构的关键组件 &#xff0c;那么Redis为什么可以作为缓存使用呢&#xff1f;首先可以作为缓存的两个主要特征&#xff1a;在分层系统中处于内存/CPU具有访问性能良好&#xff0c;缓存数据饱和&#xff0c;有良好的数据淘…

5部适合学英语的动画电影,快和孩子一起看!

全世界只有3.14 % 的人关注了爆炸吧知识今天我们与大家分享5部非常适合小学生学习英语的动画电影&#xff0c;家长们可依据不同类别和主题为孩子挑选喜欢的影片&#xff0c;在家陪孩子一起观看。文末可免费领取哦~01 《丁丁历险记》讲述的是一天丁丁买了一只古老的船模送给船长…

OC面向对象—封装

OC面向对象—封装 一、面向对象和封装 面向对象的三大特性&#xff1a;封装&#xff08;成员变量&#xff09;、继承和多态 在OC语言中&#xff0c;使用interface和implementation来处理类。 interface就好像暴露在外面的时钟表面&#xff0c;像外界提供展示以及接口。implemen…

10张让你大脑崩溃的图,敢接受挑战吗?

全世界只有3.14 % 的人关注了爆炸吧知识快睡了吧&#xff1f;来做一组视觉游戏~一些人热爱挑战各种错觉&#xff0c;如果你也是这类型图片的粉丝&#xff0c;这10张图片会让你非常过瘾&#xff01;入门篇【挑战一】在这张图片中&#xff0c;你能看到几个红球&#xff1f;5个&am…