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

125 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
项目名称: 91PORN #如果在dmp则使用dmp的名称 如果不在则使用自定义名称
一级部门: 北斗 #请填写一级部门名称 北斗
二级部门: 瑞升 #请填写二级部门名称,无则留空, 如无极
DMP编码: JHA-204 #无则留空
项目类型: app
# 可选值:
# H5 / APP / PC / 服务 / 组件 / 工具 / AI / 中间件
开发语言: GO
# 可选值:
# GO / Java / PHP / Node
项目负责人: DN8276 # 员工编号, 多个用逗号隔开,这里的负责是这套代码的负责人
运维负责人: DN9460,DN9651,DN4792 #
产品负责人: YY1165,YY1145,YY1208 # 张天意,李云霄,邦妮
项目成员: DN8276
项目状态: 开发中
# 可选值:
# 开发中 / 维护中 / 已停止 / 已归档
项目级别:
# 可选值:
# 高 / 中 / 低 , 北斗体系 s和a为 高 b为中 c d为低
核心分支: main
# 即部署时候使用的分支,可选值:
# master / main / dev / release
代码仓库:
- 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.key``enc_pms.key``enkeymt.key`,注意保密
- APP 端包含请求加密中间件(RSA),密钥在 `app/middleware/requestEncrypt/`