[TOC] 高伟达信贷系统开发平台是一个工具平台。集成了开源组件、业务模板、最佳实践方法论的工具型平台。覆盖了从需求分析到上线部署项目全生命周期。
元数据管理
高伟达信贷系统开发平台将开发活动定义为5个阶段:分别是需求分析QA、系统设计SD、系统开发DEV、上线部署及运行。质量保证QA和项目管理PM贯穿项目活动的整个过程。
从上至下,以元数据及其逻辑模型作为基础,每一层的产出都为以后的活动提供支持。换句话说,每一级活动的工作展开都依赖上一级活动的产出物,在上一级产出物的基础上进行。
技术栈

前端开发平台
后端开发平台
单体开发平台
批量调度平台
流程引擎
规则引擎
关键技术
分布式事务
高伟达开发平台推荐AT模式和Sagas模式作为全局事务的标准方式。在开发过程中可以根据应用的场景进行选用。基于Seata来实现。主要的考虑是性能影响小,对应用的侵入较小。AT模式对应用可以做到无侵入,但需要行锁,数据库存在一定的消耗。SAGAS模式Saga 模式适用于业务流程长且需要保证事务最终一致性的业务系统,Saga 模式一阶段就会提交本地事务,无锁、长流程情况下可以保证性能。
AT模式
Seata 框架根据使用者的SQL语句自动生成事务的二阶段提交和回滚操作。在一阶段,Seata 会拦截“业务 SQL”,首先解析 SQL 语义,找到应用SQL要更新的业务数据,在业务数据被更新前,将其保存成“before image”,然后执行“业务 SQL”更新业务数据,在业务数据更新之后,再将其保存成“after image”,最后生成行锁。以上操作全部在一个数据库事务内完成,这样保证了一阶段操作的原子性。 在二阶段。如果是提交的话,因为“业务 SQL”在一阶段已经提交至数据库, 所以 Seata 框架只需将一阶段保存的快照数据和行锁删掉,完成数据清理即可。 如果是回滚的话,Seata 就需要回滚一阶段已经执行的“业务 SQL”,还原业务数据。回滚方式便是用“before image”还原业务数据;但在还原前要首先要校验脏写,对比“数据库当前业务数据”和 “after image”,如果两份数据完全一致就说明没有脏写,可以还原业务数据,如果不一致就说明有脏写,出现脏写就需要转人工处理。
SAGAS模式
1、Sagas不保证事务的隔离性,在极端情况下可能出现脏写。所以在补偿失败的情况下,系统需要提供最终一致性的对账机制。 2、补偿机制无法确保和原交易的时序。需要防悬挂设计。运行空补偿,但此后需要防止原交易的执行 3、Saga 不保证隔离性。系统实现过程中账务类交易需要保证“先记账后放款”、“先还款后记账”等原则。
