项目目标
统一全行流程服务:通过中台思想整合分散的业务流程,沉淀共享服务,提升流程复用性和一致性。
支撑业务与办公场景:支持全行业务流程(如贷款审批、开户等)和内部办公流程(如审批、报销等),实现跨部门协同。
高性能与弹性扩展:通过容器化部署和微服务架构,应对业务高峰流量,保障系统稳定性和响应速度。
核心功能
流程定义与配置:支持业务部门自定义流程节点、规则和表单,快速适配业务变化。
全行流程可视化:提供流程监控、状态跟踪和数据分析,帮助优化流程效率。
弹性伸缩能力:基于容器化技术,动态扩展资源,应对每年业务高峰(如“双十一”、年终结算等)。
领域驱动设计(DDD):构建核心领域模型,应对复杂业务需求的快速迭代。
核心模块
流程引擎模块:
流程定义与编排(BPMN标准支持)。
流程实例管理(启动、暂停、终止)。
服务共享模块:
共享流程服务(如权限校验、通知发送)。
用户体系集成(全行统一身份认证)。
弹性调度模块:
容器化部署(如Kubernetes集群管理)。
横向扩容与负载均衡。
领域模型模块:
核心业务对象建模(如流程节点、规则引擎)。
事件溯源与领域事件驱动。
业务流程(功能路径)
以“贷款审批流程”为例:
流程发起:业务人员通过流程中心定义贷款审批流程(节点:客户经理→风控→审批人→放款)。
流程执行:
客户提交申请后,流程引擎自动分配任务。
各节点人员通过统一入口处理任务(如风控审核风险指标)。
监控与优化:
监控中心实时查看流程状态、耗时及瓶颈。
根据数据反馈调整流程规则(如增加自动审批阈值)。
弹性扩容:
在“双十一”贷款申请高峰时,自动扩容容器节点,保障并发处理能力。
   一、流程中心架构设计
1. 设计目标
统一共享流程服务:沉淀全行通用流程能力,减少重复开发,提升流程复用性。
支持弹性扩展:应对业务高峰(如年终结算、促销活动)的流量波动。
复杂业务适配:通过领域建模应对多变的流程需求。
2. 分层架构设计
(1)基础设施层
容器化平台:基于 Kubernetes 实现微服务容器化部署,支持动态扩缩容。
数据层:
持久化存储:MySQL/DB2 存储流程实例、历史记录等核心数据。
缓存层:Redis 缓存高频访问的流程状态,提升查询性能。
消息队列 Kafka 处理异步任务(如流程通知、日志上报)。
(2)服务层
流程引擎服务:
自研引擎,支持 BPMN 流程定义,提供流程编排、实例管理功能。
核心能力:节点动态扩展、规则配置、权限校验集成。
共享服务模块:
身份权限服务:统一调用全行用户体系(如 LDAP、JWT),实现流程角色权限控制。
通知服务:集成短信、邮件、站内信等多渠道通知,驱动流程流转。
(3)应用层
流程管理界面:
业务人员配置流程模板(定义节点、表单、规则)。
运维人员监控流程实例状态、性能指标。
API 网关:
统一接入层,提供 RESTful API 接口供外部系统调用流程服务。
(4)运维层
弹性调度模块:
通过 Kubernetes 的 HPA(Horizontal Pod Autoscaler)监测 CPU/内存使用率,自动扩缩容容器实例。
基于历史流量预测(如节假日流量模式)预置资源。
监控告警:Prometheus 监控系统性能,结合 Grafana 可视化关键指标(如响应时间、QPS)。
3. 核心设计特点
(1)领域驱动设计(DDD)
核心模型:
Process(流程):聚合根,管理流程定义、实例、节点状态。
Task(任务):流程节点实例,携带执行人、状态、表单数据。
Rule(规则):条件表达式(如审批金额阈值)驱动流程路由。
限界上下文划分:
流程设计:定义流程模板,隔离业务规则。
流程执行:处理实例运行时状态。
监控分析:统计流程耗时、瓶颈节点。
(2)弹性伸缩机制
自动扩缩容:
监控指标:当前 QPS、队列积压任务数。
扩容策略:流量峰值时触发 Kubernetes 部署新 Pod,负载均衡自动分配流量。
无状态服务:流程引擎服务设计为无状态,避免因扩容导致的会话丢失。