Skip to content

鲸先BaaS平台 技术架构

架构概览

系统架构

整体架构设计

鲸先BaaS平台采用微服务架构,核心特点:

  • 高内聚低耦合:各服务独立部署、独立扩缩容
  • 分层设计:明确的层级边界,便于维护和扩展
  • 云原生:容器化部署,支持弹性伸缩

核心模块

模块名称技术栈主要职责部署方式
API网关Kong/Nginx统一接入、鉴权、限流Docker
支付服务Django/Python支付核心逻辑K8s
账户服务Django/Python账户管理、记账K8s
清结算服务Django/Python清分、结算处理K8s
风控服务Python/ML风控规则、AI模型K8s
通知服务Celery异步通知处理K8s

技术栈

后端技术

类别技术选型版本选型理由
语言Python3.10+开发效率高、生态丰富
框架Django4.2+成熟稳定、安全性高
API框架DRF3.14+RESTful API快速开发
数据库PostgreSQL14+高可靠性、事务支持
缓存Redis7+高性能缓存、分布式锁
消息队列RabbitMQ3.11+高可靠消息队列
任务队列Celery5.3+异步任务处理

前端技术

类别技术选型版本选型理由
框架Vue 33.3+响应式、组件化
UI组件库Element Plus2.3+企业级UI组件
构建工具Vite4.4+快速构建、热更新
状态管理Pinia2.1+Vue官方推荐

基础设施

类别技术选型版本说明
容器化Docker24+应用容器化
编排Kubernetes1.28+容器编排
CI/CDGitLab CI16+持续集成/部署
监控Prometheus + Grafana-监控告警
日志ELK Stack8.x日志收集分析
网关Kong3.4+API网关

核心流程

支付流程

状态机设计(支付订单)

数据模型

核心实体关系

核心数据表

表名主要字段说明
merchantid, name, status, api_key商户基础信息
accountid, merchant_id, account_no, balance虚拟账户信息
orderid, merchant_id, amount, status支付订单
paymentid, order_id, channel, status支付记录
settlementid, order_id, amount, status结算单
transactionid, account_id, amount, type账户流水

安全设计

认证授权

  • 认证方式:API Key + RSA签名
  • 授权模型:RBAC(基于角色的访问控制)
  • Token策略:JWT,有效期2小时

数据安全

  • 传输安全:全站HTTPS加密
  • 存储加密:敏感字段AES-256加密
  • 脱敏处理:日志脱敏,隐藏敏感信息
  • 备份策略:每日全量备份 + 实时增量备份

审计日志

  • 日志记录:所有API调用、重要业务操作
  • 存储周期:原始日志 180天,归档日志 3年
  • 防篡改:日志签名验证

性能指标

指标目标值说明
响应时间(P99)< 200msAPI响应时间
吞吐量> 1000 TPS最大并发处理能力
可用性99.99%年度SLA
RPO< 5分钟数据丢失最大耐受时间
RTO< 30分钟故障恢复时间

部署架构

外部依赖

依赖服务用途接入方式降级策略
银行通道资金收付专线/HTTPS多通道切换
支付渠道支付处理API路由切换
短信服务验证码/通知API队列缓存
邮件服务邮件通知SMTP/API异步发送

监控与运维

关键监控指标

  • 业务指标:交易量、成功率、平均响应时间
  • 技术指标:CPU/内存/磁盘使用率、网络延迟、错误率

告警策略

  • 业务告警:交易失败率 > 1%、响应时间 > 500ms
  • 系统告警:CPU > 80%、内存 > 85%、磁盘 > 90%
  • 通知方式:钉钉、邮件、短信

技术文档

Released under the MIT License.