# 技术架构设计

> 前后端分离六层技术架构、开发平台四统一、流程/规则/调度/注册配置/管控/分布式事务六大平台组件。

---

LLMS 索引： [llms.txt](/llms.txt)

---

依据《新一代智慧信贷平台-技术架构设计》第三章（技术架构）提炼。系统整体采用前后端分离架构，自上而下分为渠道层、展示层、网关层、服务层、持久层、支撑层六层。

## 总体分层 {#layers}

| 层次 | 定位 | 关键技术 |
|---|---|---|
| 渠道层 | 用户接入的统一入口 | 门户（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 分布式事务）。技术栈版本以行内安全规范为标准（详见原文组件版本表）。

## 开发平台：四个统一 {#platform}

- **统一的设计规范**：用户体验、界面交互、组件设计、代码四类规范全流程标准化；
- **统一的开发模式**：前后台分离、开发分离化/技能专业化/实施工艺化、全生命周期持续集成；
- **统一的开发工具**：一体化开发平台、可视化拖拽与代码生成、多架构适配（单体/微服务）、自动化运维；
- **统一的技术平台**：自主可控底座、统一技术栈标准、松耦合高复用架构、全渠道场景适配。

## 流程引擎 echain {#echain}

宇信科技自主设计研发的一套**基于数据库的工作流微服务组件**，定位解决所有与工作流流程相关的线上活动，适用于信贷审批、自动审批类（半人工半自动/自动授信流程）、公文审批、人事财务等广泛场景。产品 2004 年诞生，历经四个大版本迭代：echain1.0（产品雏形）→ echain2.2（基于 WFMC 标准）→ echain3.X（无缝对接 YUSP 统一开发平台）→ echain V4.X（SpringCloud 分布式版本）。在智慧信贷中对应支撑层的**流程中心微服务**，承接"作业协同"业务能力（统一管理与驱动流转阶段的状态迁移，见[应用架构](../../application/app-architecture/)）。

### 六大产品特色 {#echain-features}

- **可视化建模工具**：Web 版流程图建模，托拽绘制、定义便捷；
- **图形化监控**：可视化审批轨迹监控，直观监管流程办理全过程；
- **流程仿真**：验证绘制完成的流程图能否成功运行、是否符合配置的路由规则，再上线；
- **智能路由**：路由运行动态脚本控制流程走向，应对复杂审批场景；
- **丰富的审批动作**：提交、打回、退回、转办、否决、作废、子流程、项目池、跳转、拿回等；
- **更强的扩展性**：审批人员、提交条件、路由条件等均可自定义扩展。

### 功能模块与流程定义 {#echain-modules}

四大功能模块：**流程管理、流转引擎、我的工作台、流程监控**。流程定义支持流程图增删查改、导入导出、复制，启停与流程图**热部署**，以及生成新版本的版本管理；流程图管理提供 Web 页面托拽绘图，属性栏支持配置多种审批动作与业务操作。

### 节点体系 {#echain-nodes}

- **必须节点**：开始/结束——一个开始、多个结束；
- **人工节点**：普通（支持审批后业务处理，可配置节点审批权限/审批按钮）；单选/条件单选（提交后续流程时必须从分支中选择一个，条件单选可在与后续节点连线上配置路由条件，结果为"真"的才能被选择）；多选/条件多选（可从后续多条连线中选择多个分支提交）；
- **自动节点**：汇总（非人工节点，多选分支后必须进行汇总）；自动运行（引擎自动提交到后续节点，支持配置业务处理）。

### 高级属性配置 {#echain-advanced}

节点级丰富配置：**处理人员**（拥有审批权限的用户或对象）及计算方式、**人员指定**（提交到下一节点时的分配方式：人员列表选择、系统指定）、**办理类型**（节点内多用户的单人/多人办理模式）、待办通知方式、任务分配策略、节点标识、子流程配置、节点脚本；**提交条件**与**启动条件**（按配置判断，支持扩展）；**业务处理**（审批完成后由流转引擎调用，含业务通知接口与业务处理扩展接口）；**智能路由**（路由条件的 Java 脚本在线编辑，或经接口实现自定义规则校验——如扩展决策引擎）。

### 流转引擎：审批动作全集 {#echain-actions}

- **基本动作**：发起（构造流程参数发起流程数据）、提交（同意流转至下一节点）；
- **回退类**：退回（前节点/发起节点/指定节点，可扩展、可连续退回）、打回（已办理节点，可连续打回并可自定义打回节点列表）、拿回（本人已办理且运行中的流程拿回本节点）、撤回（发起人从任何节点拿回初始节点）、否决（标识流程结束）、作废（被退回/打回后发起人作废流程）；
- **协同类**：转办（转交他人办理）、协办（他人办理后流转回本人）、跳转（交由流程中其他节点，可扩展）、抄送、催办（特定方式催促办理人，可扩展）、挂起/唤醒（挂起后无法审批）；
- **子流程**：流转到特定节点时发起子流程，支持手动/自动、同步/异步；
- **高级操作（管理员）**：重置节点办理人、激活已办结流程（激活后回到发起节点）。

### 工作台与流程监控 {#echain-monitor}

我的工作台提供**待办数据**（当前审批人与节点、流程审批状态、多条件查询；详情含业务页面展示、丰富审批动作与审批历史路线查看）、**项目池**（关联岗位人员认领项目池任务后审批）、**委托**（将委托人业务委托给被委托人，可自定义业务范围与委托时间段）。流程监控从不同维度查询展示流程实例数据，帮助管理员分析统计流程运转情况，并提供超管操作（如废除实例）。

### 集成与扩展 {#echain-integration}

部署依赖数据库，Redis、邮件服务器、MQ 为可选中间件。扩展开发采用流程属性扩展接口模式（如启动条件判断的 StudioBeforeStartInterface）：添加实现类继承指定属性的抽象类接口，定义扩展选项显示名称即可注入引擎。工作流相关表以 `N_WF_` 为前缀（如 N_WF_FLOW 流程图记录表）。

## 规则引擎 {#rules}

将业务规则从程序代码剥离，业务人员可视化配置业务决策，运行时可修改。功能架构分两层：

- **上层核心规则层（规则全生命周期）**：规则管理 10 项操作（新增、复制、修改、删除、查询、导入导出、启停、仿真——先仿真验证再启用，避免错误规则影响生产）；规则编辑（语法检查、6 种规则类型）；版本管理（新版本留痕、可追溯、可回滚，满足合规审计）。
- **下层基础资源层（三大支撑模块）**：模型库（规则分组容器与权限隔离）、指标（"客户年龄""逾期次数"等原子判断因子，统一定义避免口径不一）、数据集（数据源与 SQL 管理，SQL 可测算后上线）。

规则形态支持自由规则、评分卡、决策树。

## 调度平台 USE {#use}

宇信企业统一调度平台，支持断点续跑、失败重试、交易补偿，可与行内调度工具及 ETL 集成。逻辑上由**管理端、调度引擎、执行节点**三个组件构成；对信贷系统而言，执行节点就是信贷批量服务。系统架构自上而下分三层：

- **管控层（系统管理及监控平台）**——面向运维/管理员的人机交互门户，五个功能模块：**应用管理**（数据源、日历、事件、作业流程、触发器、公共参数、执行集群、批量重跑方案等基础环境配置）；**系统监控**（任务监控、触发监控、作业清单、警示监控、资源监控、事件查看的全局运行看板）；**警示管理**（警示模板、警示对象、作业告警、资源告警的告警规则配置）；**平台管理**（应用系统注册、应用授权、作业类型维护，管控可调度任务的类型范围）；**OCA 功能**（机构、角色、用户、功能/数据授权、菜单、数据字典、日志审计的统一权限体系）。
- **调度引擎（核心调度层）**——批量任务的中枢"大脑"，四个子模块：**任务管理**（任务初始化、后置处理、任务清理，负责调度实例创建、收尾与资源回收）；**作业管理**（作业前置校验、事件检查、调度分发、任务分片派发、后置处理与扩展）；**执行节点管理**（节点注册、上下线处理、启停指令下发、心跳探测）；**底层支撑**（主备切换、调度线程池、告警通知、资源管理，保障引擎自身高可用）。
- **执行节点（远端执行层）**——内嵌在业务服务中，四个子模块：**主控制器**（与调度引擎的通信中枢：节点注册/下线申请、心跳上报、作业接收、状态控制、作业中断）；**执行器**（六种作业类型的实际运行载体：BEAN、SHELL、SQL、存储过程、SP、HTTP，可执行代码脚本、数据库、接口类批量任务）；**状态汇报**（作业运行结果与日志的回传通道）；**健康检查**（健康状态与 CPU、内存、存储、JVM 指标采集上报）。

调度操作层面提供调度首页（全局运行视图）与作业流管理（作业流定义、依赖编排与重跑）。

核心能力：定时/周期/事件触发多模式调度，可视化配置任务依赖（任务 A 完成触发任务 B）与优先级管理（高优先级抢占资源）；大批量任务分片拆分与并行执行（如百万级计息任务拆分多节点并行），日终批处理多机随机分配且不重复执行。容错与可靠性：断点续跑（异常中断后避免重复处理）、失败自动重试（全量或增量）、幂等与互斥（"运行中单任务不允许重复调用"、"约定时间段内禁止重复运行"）。集成与资源管控：与行内 Control-M 调度集成；数据抽取与 DataStage 集成，报文符合行内 ESB 标准；可视化作业并发数在线增减；时效约束为单个批量任务 ≤0.5 小时、总时长 ≤2 小时，超时自动告警。

<iframe src="/credit/arch/09-use-scheduling.html" title="USE 调度平台架构图" loading="lazy" style="width:100%;height:700px;border:1px solid #e5e7eb;border-radius:8px;"></iframe>

<a href="/credit/arch/09-use-scheduling.html" target="_blank">全屏打开 ↗</a>

## 注册/配置中心 Nacos {#nacos}

信贷门户微服务全部依赖 Nacos 做服务注册与配置统一管理。架构四层：客户端层（Provider 启动注册 IP/端口，Consumer 拉取实例列表寻址）、服务端核心（Naming Service 命名注册 + Config Service 配置中心）、一致性协议层（**Distro AP 协议管服务实例——可用性优先；Raft CP 管配置数据——一致性优先**）、持久化层（开发测试用内置 Derby，生产用 OceanBase-MySQL 租户）。

核心流程：服务注册（SDK 上报→心跳维持→异常剔除）、配置拉取与动态推送（控制台修改→长轮询实时推送各微服务，改配置不重启服务）。

## 管控平台 {#control}

微服务全生命周期管控体系，从系统管理、服务部署、服务治理，到监控日志、配置中心、告警中心，形成覆盖服务从上线到运维的完整闭环（自动化发布结合 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 集群，完成告警的去重、分组、路由与通知分发。

<iframe src="/credit/arch/10-control-platform.html" title="管控平台架构图" loading="lazy" style="width:100%;height:700px;border:1px solid #e5e7eb;border-radius:8px;"></iframe>

<a href="/credit/arch/10-control-platform.html" target="_blank">全屏打开 ↗</a>

## 分布式事务 Saga {#saga}

采用 Saga 模式并做三方面改进：去除协调中心 server 端（无需独立部署，事务状态存业务数据库）；框架以 SDK 嵌入（状态机引擎与事务管理下沉）；业务补偿由框架触发（无需硬编码）。核心组件：事务协调器 SDK（状态机引擎 + 补偿管理器）、事务状态存储（基于业务数据库）。

三条强制原则：**业务幂等性**（正向与补偿操作都必须幂等）、**事务边界约束**（Saga 不跨服务传播，只能在发起服务内编排，下游用本地事务保证一致性）、**补偿可达性**（补偿必须能执行成功，下游必须提供补偿接口）。失败处理：补偿失败自动重试（定时补偿器，3 次）；人工处理支持手工重试补偿与强制标记补偿结束。

## 技术架构图 {#diagram}

<iframe src="/credit/arch/07-tech-architecture.html" title="技术架构图" loading="lazy" style="width:100%;height:760px;border:1px solid #e5e7eb;border-radius:8px;"></iframe>

<a href="/credit/arch/07-tech-architecture.html" target="_blank">全屏打开 ↗</a>

---

反链：

- [技术架构](/docs/credit/technology/)
