Skip to main content
原文链接https://novusai-saas.github.io/en/en/docs/business-services/common-business-services/common-business-services.md

通用业务服务

本文引用的源码与文档

本文引用的文件

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖分析
  7. 性能考虑
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本文件系统性梳理通用业务服务的设计原则与实现模式,覆盖认证服务、邮件服务、通知服务、存储配额管理等跨领域能力,并对公共接口、安全机制、数据验证规则进行文档化。同时阐述邮件模板管理、图片处理流程与文件验证策略,说明通用服务与各业务域的集成方式与依赖关系,给出配置管理、错误处理与性能优化策略,并提供使用示例与扩展指导。

项目结构

通用业务服务主要位于后端应用的服务层 common 包中,围绕认证、邮件、通知、存储配额、通道分发、模板与工具展开;存储子系统独立于通用服务但被其复用;任务层负责异步处理邮件与通知;模板目录提供邮件 HTML 模板;工具模块提供图片处理能力。

图表来源

章节来源

核心组件

  • 认证服务:统一登录态管理、会话密码校验、登录安全策略、验证码校验与登录域适配(管理员域、租户用户域)。
  • 邮件服务:邮件发送、模板渲染、模板管理、异步任务编排。
  • 通知服务:多通道分发(站内信、Webhook、WebSocket),偏好与清理策略。
  • 存储配额服务:配额计算、限额检查、用量追踪与回收站联动。
  • 图片处理服务:缩略图生成、尺寸裁剪、格式转换与水印等。
  • 文件验证器:类型白名单、大小限制、内容安全扫描。
  • 存储配置解析:按租户/环境选择存储驱动与参数。
  • 通道体系:抽象通道基类与具体通道实现,支持扩展与组合。

章节来源

架构总览

通用服务通过“服务层 + 通道层 + 存储层 + 任务层 + 模板层 + 工具层”的协作,形成可插拔、可扩展的跨域通用能力。认证域适配不同登录场景;邮件与通知通过通道分发到多种下游;存储配额与文件验证贯穿上传链路;图片处理与模板渲染提升用户体验。

图表来源

详细组件分析

认证服务

图表来源

章节来源

邮件服务

图表来源

章节来源

通知服务

图表来源

章节来源

存储配额服务

图表来源

章节来源

图片处理服务

  • 设计原则:无损处理、可配置参数、与存储驱动解耦。
  • 关键能力:
    • 缩略图生成、尺寸裁剪、格式转换
    • 水印与质量控制
  • 公共接口要点(路径参考):

章节来源

文件验证器

  • 设计原则:白名单策略、大小限制、内容安全扫描。
  • 关键能力:
    • 类型白名单与 MIME 校验
    • 大小限制与重复文件检测
    • 内容安全扫描与病毒库对接
  • 公共接口要点(路径参考):

章节来源

依赖分析

  • 组件耦合与内聚:
    • 通知服务与通道层松耦合,通过通道基类扩展新通道。
    • 邮件服务与模板层、通道层、任务层解耦,职责清晰。
    • 存储配额服务与存储管理器、回收站联动,边界明确。
  • 外部依赖与集成点:
    • 存储驱动(本地/云存储插件)通过存储管理器抽象接入。
    • 任务队列用于异步邮件与通知处理。
    • 中间件与安全模块提供统一的权限、审计、追踪能力。
  • 接口契约与实现细节:
    • 通道基类定义统一接口,具体通道实现遵循该接口。
    • 存储配置解析器根据租户与环境返回合适的驱动参数。

图表来源

章节来源

性能考虑

  • 异步化:邮件与通知通过任务队列异步处理,降低请求延迟。
  • 缓存与限流:结合中间件与速率限制模块,控制并发与请求频率。
  • 存储优化:配额与用量追踪采用批量更新与缓存,减少数据库压力。
  • 图片处理:按需生成缩略图与压缩,避免不必要的大图传输。
  • 模板渲染:模板静态化与缓存,减少重复渲染开销。

故障排查指南

  • 常见错误与定位:
    • 存储相关错误:参考存储异常基类与存储模块,定位驱动与配额问题。
    • 通道发送失败:检查通道实现与下游可用性,查看任务队列状态。
    • 认证失败:核对登录安全策略、验证码与会话密码校验日志。
  • 错误处理与恢复:
    • 使用统一异常基类与错误码规范,便于前端与监控系统识别。
    • 任务重试与死信队列策略,确保消息不丢失。
  • 调试建议:
    • 启用追踪中间件与审计日志,定位请求链路。
    • 在开发环境开启详细日志,观察模板渲染与通道投递过程。

章节来源

结论

通用业务服务以“通道化、模板化、任务化、配额化”为核心设计思想,实现了认证、邮件、通知、存储配额等跨域能力的高内聚低耦合封装。通过严格的接口契约、安全机制与性能优化策略,为上层业务域提供稳定、可扩展、可观测的通用能力。

附录