refactor: consolidate backend into modular monolith

This commit is contained in:
2026-07-30 15:37:31 +08:00
parent 30fd159041
commit 7a73dcbd12
55 changed files with 20409 additions and 1728 deletions

View File

@@ -13,7 +13,6 @@
可选:
- Redis 7
- RabbitMQ 4。
```bash
dotnet --version
@@ -89,29 +88,25 @@ dotnet run --project Tiku.Api
OpenAPI 和 Scalar 仅在 Development 映射。接口路径、输入字段、响应模型和授权要求以这里生成的文档为准。
## 6. 可选:启动 Redis 和 RabbitMQ
## 6. 可选:启动 Redis
本地单实例开发可以不配置这两个依赖。需要验证分布式安全频控、Output Cache、消息和 Outbox 时,先启动本地服务,再设置:
本地单实例开发可以不配置 Redis。需要验证安全频控、Feature 缓存和 Output Cache 时,先启动本地服务,再设置:
```bash
export ConnectionStrings__Redis='localhost:6379,abortConnect=false'
export RabbitMq__Host='rabbitmq://localhost'
export RabbitMq__VirtualHost='/'
export RabbitMq__Username='guest'
export RabbitMq__Password='guest'
```
RabbitMQ 使用 4.x当前代码不依赖 delayed-message 插件。延时任务由 PostgreSQL `RunAfter` 调度
Production 必须配置 RedisPostgreSQL 仍是用户、Session、权限、套餐和用量的权威数据源
## 7. 可选:启动 Worker
## 7. 后台处理
需要处理域名、订阅、用量后台任务时,在另一个终端使用相同配置启动
API 默认在同一进程启动域名、订阅、用量后台任务 Hosted Service。需要临时关闭时配置
```bash
dotnet run --project Tiku.Worker
export BackgroundProcessing__Enabled=false
```
Worker 会立即开始轮询。域名 DNS/TLS 流程只有在 `TenantDomains` 的 CNAME target 和 Gateway 配置完整后才能激活自定义域名。
后台任务状态、租约、重试和 `RunAfter` 存在 PostgreSQL。域名 DNS/TLS 流程只有在 `TenantDomains` 的 CNAME target 和 Gateway 配置完整后才能激活自定义域名。
## 8. 开发验证
@@ -139,7 +134,7 @@ pg_isready -h 127.0.0.1 -p 5432
psql -h 127.0.0.1 -U <数据库用户> -d postgres -c 'select current_user;'
```
确认当前终端的 `DATABASE_URL` 指向真实存在的数据库,并且 APIDbMigrator 和 Worker 使用同一连接配置。
确认当前终端的 `DATABASE_URL` 指向真实存在的数据库,并且 APIDbMigrator 使用同一连接配置。
### 无法创建 PostgreSQL 扩展
@@ -151,7 +146,7 @@ psql -h 127.0.0.1 -U <数据库用户> -d postgres -c 'select current_user;'
### Readiness 返回 503
检查响应中的 `database``redis.ready``rabbitMq.ready`配置了 Redis/RabbitMQ 连接串但服务未启动时readiness 会按已配置依赖检查并返回 503。
检查响应中的 `database``redis.ready`。配置了 Redis 连接串但服务未启动时readiness 会返回 503。
### API 出现 HTTPS 重定向警告