鲸先BaaS平台 技术架构
架构概览
系统架构
整体架构设计
鲸先BaaS平台采用微服务架构,核心特点:
- 高内聚低耦合:各服务独立部署、独立扩缩容
- 分层设计:明确的层级边界,便于维护和扩展
- 云原生:容器化部署,支持弹性伸缩
核心模块
| 模块名称 | 技术栈 | 主要职责 | 部署方式 |
|---|---|---|---|
| API网关 | Kong/Nginx | 统一接入、鉴权、限流 | Docker |
| 支付服务 | Django/Python | 支付核心逻辑 | K8s |
| 账户服务 | Django/Python | 账户管理、记账 | K8s |
| 清结算服务 | Django/Python | 清分、结算处理 | K8s |
| 风控服务 | Python/ML | 风控规则、AI模型 | K8s |
| 通知服务 | Celery | 异步通知处理 | K8s |
技术栈
后端技术
| 类别 | 技术选型 | 版本 | 选型理由 |
|---|---|---|---|
| 语言 | Python | 3.10+ | 开发效率高、生态丰富 |
| 框架 | Django | 4.2+ | 成熟稳定、安全性高 |
| API框架 | DRF | 3.14+ | RESTful API快速开发 |
| 数据库 | PostgreSQL | 14+ | 高可靠性、事务支持 |
| 缓存 | Redis | 7+ | 高性能缓存、分布式锁 |
| 消息队列 | RabbitMQ | 3.11+ | 高可靠消息队列 |
| 任务队列 | Celery | 5.3+ | 异步任务处理 |
前端技术
| 类别 | 技术选型 | 版本 | 选型理由 |
|---|---|---|---|
| 框架 | Vue 3 | 3.3+ | 响应式、组件化 |
| UI组件库 | Element Plus | 2.3+ | 企业级UI组件 |
| 构建工具 | Vite | 4.4+ | 快速构建、热更新 |
| 状态管理 | Pinia | 2.1+ | Vue官方推荐 |
基础设施
| 类别 | 技术选型 | 版本 | 说明 |
|---|---|---|---|
| 容器化 | Docker | 24+ | 应用容器化 |
| 编排 | Kubernetes | 1.28+ | 容器编排 |
| CI/CD | GitLab CI | 16+ | 持续集成/部署 |
| 监控 | Prometheus + Grafana | - | 监控告警 |
| 日志 | ELK Stack | 8.x | 日志收集分析 |
| 网关 | Kong | 3.4+ | API网关 |
核心流程
支付流程
状态机设计(支付订单)
数据模型
核心实体关系
核心数据表
| 表名 | 主要字段 | 说明 |
|---|---|---|
| merchant | id, name, status, api_key | 商户基础信息 |
| account | id, merchant_id, account_no, balance | 虚拟账户信息 |
| order | id, merchant_id, amount, status | 支付订单 |
| payment | id, order_id, channel, status | 支付记录 |
| settlement | id, order_id, amount, status | 结算单 |
| transaction | id, account_id, amount, type | 账户流水 |
安全设计
认证授权
- 认证方式:API Key + RSA签名
- 授权模型:RBAC(基于角色的访问控制)
- Token策略:JWT,有效期2小时
数据安全
- 传输安全:全站HTTPS加密
- 存储加密:敏感字段AES-256加密
- 脱敏处理:日志脱敏,隐藏敏感信息
- 备份策略:每日全量备份 + 实时增量备份
审计日志
- 日志记录:所有API调用、重要业务操作
- 存储周期:原始日志 180天,归档日志 3年
- 防篡改:日志签名验证
性能指标
| 指标 | 目标值 | 说明 |
|---|---|---|
| 响应时间(P99) | < 200ms | API响应时间 |
| 吞吐量 | > 1000 TPS | 最大并发处理能力 |
| 可用性 | 99.99% | 年度SLA |
| RPO | < 5分钟 | 数据丢失最大耐受时间 |
| RTO | < 30分钟 | 故障恢复时间 |
部署架构
外部依赖
| 依赖服务 | 用途 | 接入方式 | 降级策略 |
|---|---|---|---|
| 银行通道 | 资金收付 | 专线/HTTPS | 多通道切换 |
| 支付渠道 | 支付处理 | API | 路由切换 |
| 短信服务 | 验证码/通知 | API | 队列缓存 |
| 邮件服务 | 邮件通知 | SMTP/API | 异步发送 |
监控与运维
关键监控指标
- 业务指标:交易量、成功率、平均响应时间
- 技术指标:CPU/内存/磁盘使用率、网络延迟、错误率
告警策略
- 业务告警:交易失败率 > 1%、响应时间 > 500ms
- 系统告警:CPU > 80%、内存 > 85%、磁盘 > 90%
- 通知方式:钉钉、邮件、短信