宿主总览
FreeKitModules 通过多个进程隔离 HTTP API、调度、消息处理和授权服务。它们可以共享数据库与业务核心程序集,但启动入口、配置和部署生命周期彼此独立。
主线宿主
| 宿主 | 项目路径 | 主要职责 | 开发地址 |
|---|---|---|---|
| FreeKit.Host | src/Services/Host/FreeKit.Host | 聚合 Identity、Member、CmsKit、Platform HTTP API | https://localhost:7000/kit_api |
| FreeKit.Job.Host | src/Services/Host/FreeKit.Job.Host | FreeScheduler 任务与后台作业 | https://localhost:7002/job_api |
| FreeKit.MessageHandler.Host | src/Services/Host/FreeKit.MessageHandler.Host | CAP 消息消费与后台处理 | https://localhost:7003/message_api |
| FreeKit.HealthChecks | src/Services/Host/FreeKit.HealthChecks/FreeKit.HealthChecks | 独立 HealthChecks UI | https://localhost:5005 |
端口来自各项目 Properties/launchSettings.json;容器部署会通过 ASPNETCORE_URLS 和 Compose 映射改写。
主 API 宿主
dotnet run --project src/Services/Host/FreeKit.Host --launch-profile https-dev
主宿主引用四个 *.HttpApi 项目。Program.cs 显式注册核心 startup,再通过 hostModules 注册 HttpApi startup 和 Controller 程序集。常用入口:
| 功能 | 路径 |
|---|---|
| Swagger | {baseUrl}{pathBase}/swagger |
| RapiDoc | {baseUrl}{pathBase}/r |
| Health | {baseUrl}{pathBase}/health |
| FreeScheduler UI | {baseUrl}{pathBase}/job/ |
后台宿主
Job 与 Message 使用 src/Services/Host/FreeKit.DI/E.cs 的核心模块映射,不引用四个 *.HttpApi 项目。这是拆分 HttpApi 的直接收益:后台进程可以调用 Application/Domain 能力,而不会加载业务 Controller 和 Hub。
启动示例:
dotnet run --project src/Services/Host/FreeKit.Job.Host --launch-profile https-dev
dotnet run --project src/Services/Host/FreeKit.MessageHandler.Host --launch-profile https-dev
三个业务宿主都调用 AddFreeKitObservability,但必须分别提供 OTLP 配置;只给主 Host 设置环境变量不会自动配置 Job 和 Message。
独立应用
| 应用 | 项目/解决方案 | 用途 | 默认开发地址 |
|---|---|---|---|
| Auth | auth/FreeKit.Auth.slnx | OpenIddict OAuth2/OIDC 授权服务 | https://localhost:7005 |
| BasicIdentity | basic/FreeKit.BasicIdentity.slnx | 轻量独立身份方案 | https://localhost:7000 |
| CodeGen | cg/FreeKit.CodeGen.slnx | 代码生成后端与 UI | http://localhost:5180 |
BasicIdentity 和主 FreeKit.Host 的默认 HTTPS 端口同为 7000,不能直接同时启动;需要为其中一个覆盖监听端口。
修改模块组合时
| 目标 | 需要检查 |
|---|---|
| 后台宿主新增/移除核心模块 | FreeKit.DI/E.cs 与对应项目引用 |
| 主 API 新增业务模块 | 核心 AddModule、hostModules、extraAssemblies、HttpApi ProjectReference |
| 只增加后台能力 | 不应让 Job/Message 引用 *.HttpApi |
| 新增 Swagger 分组 | Controller ApiExplorerSettings 与 Host Swagger endpoint 配置 |