Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

4.1 KiB
Raw Permalink Blame History

项目名称, 一级部门, 二级部门, DMP编码, 项目类型, 开发语言, 项目负责人, 运维负责人, 产品负责人, 项目成员, 项目状态, 项目级别, 核心分支, 代码仓库, 最后审计人, 最后审计时间, 告警群, 备注
项目名称 一级部门 二级部门 DMP编码 项目类型 开发语言 项目负责人 运维负责人 产品负责人 项目成员 项目状态 项目级别 核心分支 代码仓库 最后审计人 最后审计时间 告警群 备注
91PORN 北斗 瑞升 JHA-204 app GO DN8276 DN9460,DN9651,DN4792 YY1165,YY1145,YY1208 DN8276 开发中 main
ssh://git@bd-git-sh.jsyyds.com:8082/ruisheng/jha-204-91pron/backend/91porn-server.git

1. 项目说明

91PORN后端服务,基于 Go 1.23 + Gin 框架,采用多服务架构:

  • APP API (app/): 面向客户端的接口服务,包含用户、视频、搜索、支付、会员、排行、抽奖、发布等模块
  • Web API (web/): 面向管理后台的接口服务,包含运营管理、数据配置、内容审核等模块
  • SKD (skd/): 后台定时任务与异步处理服务,包含定时任务 (job/)、一次性脚本 (once/)、数据导出等
  • Swagger (main.go): API 文档服务,端口 20114

项目目录结构:

91porn-server/
├── app/            # APP 端 API 服务 (api/router/service/middleware/proto/appg)
├── web/            # Web 管理后台 API 服务 (api/router/service/middleware/proto/webg)
├── skd/            # 后台任务服务 (job/once/service/skdg)
├── common/         # 公共模块 (cache/db/redis/elastic/file/email/log/tg/httputil/stderr 等)
├── models/         # 数据模型层 (Init/commod/v/*)
├── middleware/      # 全局中间件 (CORS/日志/IP/RequestID/UA)
├── generate/       # 代码生成工具
├── scripts/        # 运维/数据脚本
├── swagger/        # Swagger 文档
├── tests/          # 测试
├── Makefile        # 构建脚本
└── Dockerfile      # Docker 构建文件

2. 基础设施与中间件

  • MongoDB(主数据库,通过 go.mongodb.org/mongo-driver
  • Redis(缓存、分布式锁 redsync
  • Kafka(消息队列,Sarama 客户端)
  • Elasticsearch(全文搜索)
  • AWS S3(文件存储)
  • Telegram Bot(告警通知)
  • 邮件服务

3. 运维部署

通过 Shell 脚本交叉编译(GOOS=linux GOARCH=amd64)并打包上传到远程服务器,每个服务有独立的部署脚本:

脚本 服务 产物 远程目录
app_update_prod.sh APP API 91porn-app-server /home/server/91porn/app
web_update_prod.sh Web API 91porn-web-server /home/server/91porn/web
skd_update_prod.sh SKD 91porn-skd-server /home/server/91porn/skd
skd_update_test.sh SKD (测试) 91porn-skd-server /server/91porn/91porn-skd

发布流程:

  1. 本地交叉编译 GOOS=linux GOARCH=amd64 go build
  2. 生成 MD5 校验文件
  3. 打包为 .tar.gz
  4. 通过 scp 上传到远程服务器
  5. 发送 Telegram 通知到服务器小组群
  6. 测试环境额外通过 SSH 远程解压并 supervisorctl restart 重启服务

4. 风险说明

  • Kafka 消息积压可能导致异步任务延迟
  • Redis 热 Key 风险(缓存层使用广泛)
  • MongoDB 大查询性能风险
  • 依赖外部服务:AWS S3、Telegram、邮件、Elasticsearch

5. 历史事故(可选)

  • 暂无

6. 交接说明(可选)

  • 各服务配置文件位于各自目录下的 config/ 文件夹(JSON 格式)
  • 加密密钥文件:enc.keyenc_pms.keyenkeymt.key,注意保密
  • APP 端包含请求加密中间件(RSA),密钥在 app/middleware/requestEncrypt/