技术架构设计
依据《新一代智慧信贷平台-技术架构设计》第三章(技术架构)提炼。系统整体采用前后端分离架构,自上而下分为渠道层、展示层、网关层、服务层、持久层、支撑层六层。
总体分层
| 层次 | 定位 | 关键技术 |
|---|---|---|
| 渠道层 | 用户接入的统一入口 | 门户(MicroApp 微应用)、APP 两类终端 |
| 展示层 | 前端交互实现 | ElementUI + Vue/Node.js,ECharts、MXGraph、AXIOS |
| 网关层 | 全系统流量统一出入口 | SpringCloud Gateway(路由、API 鉴权、负载均衡、灰度发布、容错熔断)+ Nginx(静态资源、反向代理) |
| 服务层 | 核心业务层:框架层 + 技术组件 | SpringCloud/SpringBoot/SpringMVC 底座,PaaS 微服务框架集成 USE 调度、Nacos,提供限流降级、熔断、链路追踪、APM |
| 持久层 | 数据落地存储 | OceanBase(业务主数据)、ElasticSearch(日志)、RocketMQ(异步解耦)、NAS(附件文档)、Redis(缓存) |
| 支撑层 | 信创基础设施底座 | 国产服务器与操作系统;元素数据平台、代码助手、DevOps(Maven、Nexus、Gitlab、CICD 流水线、SonarQube) |
技术组件按四类开箱即用:安全类(授权权限、国密 SM2/SM4、AccessFilter、XSS 防御、数据脱敏、数据权限)、数据交互类(MybatisPlus、HikariCP)、服务通信(OpenFeign、RocketMQ、Redis 幂等、Loadbalancer)、运维工具(异常处理、Logback/Slf4j、文件上传下载、序列号、Session、Saga 分布式事务)。技术栈版本以行内安全规范为标准(详见原文组件版本表)。
开发平台:四个统一
- 统一的设计规范:用户体验、界面交互、组件设计、代码四类规范全流程标准化;
- 统一的开发模式:前后台分离、开发分离化/技能专业化/实施工艺化、全生命周期持续集成;
- 统一的开发工具:一体化开发平台、可视化拖拽与代码生成、多架构适配(单体/微服务)、自动化运维;
- 统一的技术平台:自主可控底座、统一技术栈标准、松耦合高复用架构、全渠道场景适配。
流程引擎 echain
宇信科技自主设计研发的一套基于数据库的工作流微服务组件,定位解决所有与工作流流程相关的线上活动,适用于信贷审批、自动审批类(半人工半自动/自动授信流程)、公文审批、人事财务等广泛场景。产品 2004 年诞生,历经四个大版本迭代:echain1.0(产品雏形)→ echain2.2(基于 WFMC 标准)→ echain3.X(无缝对接 YUSP 统一开发平台)→ echain V4.X(SpringCloud 分布式版本)。在智慧信贷中对应支撑层的流程中心微服务,承接"作业协同"业务能力(统一管理与驱动流转阶段的状态迁移,见应用架构)。
六大产品特色
- 可视化建模工具:Web 版流程图建模,托拽绘制、定义便捷;
- 图形化监控:可视化审批轨迹监控,直观监管流程办理全过程;
- 流程仿真:验证绘制完成的流程图能否成功运行、是否符合配置的路由规则,再上线;
- 智能路由:路由运行动态脚本控制流程走向,应对复杂审批场景;
- 丰富的审批动作:提交、打回、退回、转办、否决、作废、子流程、项目池、跳转、拿回等;
- 更强的扩展性:审批人员、提交条件、路由条件等均可自定义扩展。
功能模块与流程定义
四大功能模块:流程管理、流转引擎、我的工作台、流程监控。流程定义支持流程图增删查改、导入导出、复制,启停与流程图热部署,以及生成新版本的版本管理;流程图管理提供 Web 页面托拽绘图,属性栏支持配置多种审批动作与业务操作。
节点体系
- 必须节点:开始/结束——一个开始、多个结束;
- 人工节点:普通(支持审批后业务处理,可配置节点审批权限/审批按钮);单选/条件单选(提交后续流程时必须从分支中选择一个,条件单选可在与后续节点连线上配置路由条件,结果为"真"的才能被选择);多选/条件多选(可从后续多条连线中选择多个分支提交);
- 自动节点:汇总(非人工节点,多选分支后必须进行汇总);自动运行(引擎自动提交到后续节点,支持配置业务处理)。
高级属性配置
节点级丰富配置:处理人员(拥有审批权限的用户或对象)及计算方式、人员指定(提交到下一节点时的分配方式:人员列表选择、系统指定)、办理类型(节点内多用户的单人/多人办理模式)、待办通知方式、任务分配策略、节点标识、子流程配置、节点脚本;提交条件与启动条件(按配置判断,支持扩展);业务处理(审批完成后由流转引擎调用,含业务通知接口与业务处理扩展接口);智能路由(路由条件的 Java 脚本在线编辑,或经接口实现自定义规则校验——如扩展决策引擎)。
流转引擎:审批动作全集
- 基本动作:发起(构造流程参数发起流程数据)、提交(同意流转至下一节点);
- 回退类:退回(前节点/发起节点/指定节点,可扩展、可连续退回)、打回(已办理节点,可连续打回并可自定义打回节点列表)、拿回(本人已办理且运行中的流程拿回本节点)、撤回(发起人从任何节点拿回初始节点)、否决(标识流程结束)、作废(被退回/打回后发起人作废流程);
- 协同类:转办(转交他人办理)、协办(他人办理后流转回本人)、跳转(交由流程中其他节点,可扩展)、抄送、催办(特定方式催促办理人,可扩展)、挂起/唤醒(挂起后无法审批);
- 子流程:流转到特定节点时发起子流程,支持手动/自动、同步/异步;
- 高级操作(管理员):重置节点办理人、激活已办结流程(激活后回到发起节点)。
工作台与流程监控
我的工作台提供待办数据(当前审批人与节点、流程审批状态、多条件查询;详情含业务页面展示、丰富审批动作与审批历史路线查看)、项目池(关联岗位人员认领项目池任务后审批)、委托(将委托人业务委托给被委托人,可自定义业务范围与委托时间段)。流程监控从不同维度查询展示流程实例数据,帮助管理员分析统计流程运转情况,并提供超管操作(如废除实例)。
集成与扩展
部署依赖数据库,Redis、邮件服务器、MQ 为可选中间件。扩展开发采用流程属性扩展接口模式(如启动条件判断的 StudioBeforeStartInterface):添加实现类继承指定属性的抽象类接口,定义扩展选项显示名称即可注入引擎。工作流相关表以 N_WF_ 为前缀(如 N_WF_FLOW 流程图记录表)。
规则引擎
将业务规则从程序代码剥离,业务人员可视化配置业务决策,运行时可修改。功能架构分两层:
- 上层核心规则层(规则全生命周期):规则管理 10 项操作(新增、复制、修改、删除、查询、导入导出、启停、仿真——先仿真验证再启用,避免错误规则影响生产);规则编辑(语法检查、6 种规则类型);版本管理(新版本留痕、可追溯、可回滚,满足合规审计)。
- 下层基础资源层(三大支撑模块):模型库(规则分组容器与权限隔离)、指标(“客户年龄"“逾期次数"等原子判断因子,统一定义避免口径不一)、数据集(数据源与 SQL 管理,SQL 可测算后上线)。
规则形态支持自由规则、评分卡、决策树。
调度平台 USE
宇信企业统一调度平台,支持断点续跑、失败重试、交易补偿,可与行内调度工具及 ETL 集成。逻辑上由管理端、调度引擎、执行节点三个组件构成;对信贷系统而言,执行节点就是信贷批量服务。系统架构自上而下分三层:
- 管控层(系统管理及监控平台)——面向运维/管理员的人机交互门户,五个功能模块:应用管理(数据源、日历、事件、作业流程、触发器、公共参数、执行集群、批量重跑方案等基础环境配置);系统监控(任务监控、触发监控、作业清单、警示监控、资源监控、事件查看的全局运行看板);警示管理(警示模板、警示对象、作业告警、资源告警的告警规则配置);平台管理(应用系统注册、应用授权、作业类型维护,管控可调度任务的类型范围);OCA 功能(机构、角色、用户、功能/数据授权、菜单、数据字典、日志审计的统一权限体系)。
- 调度引擎(核心调度层)——批量任务的中枢"大脑”,四个子模块:任务管理(任务初始化、后置处理、任务清理,负责调度实例创建、收尾与资源回收);作业管理(作业前置校验、事件检查、调度分发、任务分片派发、后置处理与扩展);执行节点管理(节点注册、上下线处理、启停指令下发、心跳探测);底层支撑(主备切换、调度线程池、告警通知、资源管理,保障引擎自身高可用)。
- 执行节点(远端执行层)——内嵌在业务服务中,四个子模块:主控制器(与调度引擎的通信中枢:节点注册/下线申请、心跳上报、作业接收、状态控制、作业中断);执行器(六种作业类型的实际运行载体:BEAN、SHELL、SQL、存储过程、SP、HTTP,可执行代码脚本、数据库、接口类批量任务);状态汇报(作业运行结果与日志的回传通道);健康检查(健康状态与 CPU、内存、存储、JVM 指标采集上报)。
调度操作层面提供调度首页(全局运行视图)与作业流管理(作业流定义、依赖编排与重跑)。
核心能力:定时/周期/事件触发多模式调度,可视化配置任务依赖(任务 A 完成触发任务 B)与优先级管理(高优先级抢占资源);大批量任务分片拆分与并行执行(如百万级计息任务拆分多节点并行),日终批处理多机随机分配且不重复执行。容错与可靠性:断点续跑(异常中断后避免重复处理)、失败自动重试(全量或增量)、幂等与互斥(“运行中单任务不允许重复调用”、“约定时间段内禁止重复运行”)。集成与资源管控:与行内 Control-M 调度集成;数据抽取与 DataStage 集成,报文符合行内 ESB 标准;可视化作业并发数在线增减;时效约束为单个批量任务 ≤0.5 小时、总时长 ≤2 小时,超时自动告警。
注册/配置中心 Nacos
信贷门户微服务全部依赖 Nacos 做服务注册与配置统一管理。架构四层:客户端层(Provider 启动注册 IP/端口,Consumer 拉取实例列表寻址)、服务端核心(Naming Service 命名注册 + Config Service 配置中心)、一致性协议层(Distro AP 协议管服务实例——可用性优先;Raft CP 管配置数据——一致性优先)、持久化层(开发测试用内置 Derby,生产用 OceanBase-MySQL 租户)。
核心流程:服务注册(SDK 上报→心跳维持→异常剔除)、配置拉取与动态推送(控制台修改→长轮询实时推送各微服务,改配置不重启服务)。
管控平台
微服务全生命周期管控体系,从系统管理、服务部署、服务治理,到监控日志、配置中心、告警中心,形成覆盖服务从上线到运维的完整闭环(自动化发布结合 DevOps 平台实现),为微服务架构提供一站式、全链路的技术支撑与管控能力。
- 服务治理:外部请求先进 API 网关,治理管控向其推送服务注册发现、路由、限流熔断等策略完成流量入口统一管控;API 网关将请求转发至后端微服务后,治理管控再推送服务治理策略,实现运行阶段全链路治理。配置策略:运维管控台可视化配置 → 推送配置中心 → 实时同步微服务(主动监听最新配置),保障配置实时生效,运维台也可在线读取配置形成闭环。技术实现与 SpringCloud Gateway 结合的六个要点:网关作为统一流量入口(路由转发、负载均衡、协议转换);通过 Nacos 实时监听路由/限流/熔断规则,配置变更动态刷新无需重启;接入注册中心按服务名动态路由,支持上下线自动感知;运维平台统一配置路由、限流、熔断、权限、超时等策略经配置中心推送执行;网关完成鉴权、流量控制、日志与链路追踪,统一处理跨域、重试、降级;请求闭环为"外部请求 → SpringCloud Gateway → 治理规则校验 → 动态路由转发 → 后端微服务 → 结果返回”。
- 部署发布:部署中心四项功能——主机管理(部署主机管理)、应用管理(微服务登记)、制品管理(zip/tar/tar.gz 制品上传)、应用部署(先选制品,再选部署应用与主机执行部署;前提是系统接入注册中心且主机安装 agent)。
- 监控告警:面向分布式系统的统一微服务监控平台,覆盖业务监控、应用层监控、中间件监控、链路监控、主机监控五大监控域,遵循行内监控体系规范实现全栈可观测。支持多技术栈应用、数据库、Redis、MQ 等基础组件一站式集中监控;针对接口服务持续采集访问量、响应延时、调用成功率等核心指标;内置异常检测能力,快速梳理异常关联范围,定位涉及的接口与主机,区分单机故障与集群共性问题;针对 Java 应用采集 GC、内存、线程等 JVM 指标。技术实现基于 Prometheus + AlertManager + Grafana:Prometheus 集群负责采集应用、主机、中间件、数据库等目标指标;Grafana 实现监控大盘与告警看板统一展示;Prometheus 的告警规则统一推送 AlertManager 集群,完成告警的去重、分组、路由与通知分发。
分布式事务 Saga
采用 Saga 模式并做三方面改进:去除协调中心 server 端(无需独立部署,事务状态存业务数据库);框架以 SDK 嵌入(状态机引擎与事务管理下沉);业务补偿由框架触发(无需硬编码)。核心组件:事务协调器 SDK(状态机引擎 + 补偿管理器)、事务状态存储(基于业务数据库)。
三条强制原则:业务幂等性(正向与补偿操作都必须幂等)、事务边界约束(Saga 不跨服务传播,只能在发起服务内编排,下游用本地事务保证一致性)、补偿可达性(补偿必须能执行成功,下游必须提供补偿接口)。失败处理:补偿失败自动重试(定时补偿器,3 次);人工处理支持手工重试补偿与强制标记补偿结束。