4.1 KiB
4.1 KiB
项目名称, 一级部门, 二级部门, DMP编码, 项目类型, 开发语言, 项目负责人, 运维负责人, 产品负责人, 项目成员, 项目状态, 项目级别, 核心分支, 代码仓库, 最后审计人, 最后审计时间, 告警群, 备注
| 项目名称 | 一级部门 | 二级部门 | DMP编码 | 项目类型 | 开发语言 | 项目负责人 | 运维负责人 | 产品负责人 | 项目成员 | 项目状态 | 项目级别 | 核心分支 | 代码仓库 | 最后审计人 | 最后审计时间 | 告警群 | 备注 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 91PORN | 北斗 | 瑞升 | JHA-204 | app | GO | DN8276 | DN9460,DN9651,DN4792 | YY1165,YY1145,YY1208 | DN8276 | 开发中 | 高 | main |
|
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 |
发布流程:
- 本地交叉编译
GOOS=linux GOARCH=amd64 go build - 生成 MD5 校验文件
- 打包为
.tar.gz - 通过
scp上传到远程服务器 - 发送 Telegram 通知到服务器小组群
- 测试环境额外通过 SSH 远程解压并
supervisorctl restart重启服务
4. 风险说明
- Kafka 消息积压可能导致异步任务延迟
- Redis 热 Key 风险(缓存层使用广泛)
- MongoDB 大查询性能风险
- 依赖外部服务:AWS S3、Telegram、邮件、Elasticsearch
5. 历史事故(可选)
- 暂无
6. 交接说明(可选)
- 各服务配置文件位于各自目录下的
config/文件夹(JSON 格式) - 加密密钥文件:
enc.key、enc_pms.key、enkeymt.key,注意保密 - APP 端包含请求加密中间件(RSA),密钥在
app/middleware/requestEncrypt/