BitzOrcas 通过构建块和中间件处理横切关注点,每个模块自动受益。与需要每个模块手动接入的框架不同,BitzOrcas 的 Mediator 管道和中间件链将大多数横切行为作为透明基础设施提供。
可用的横切功能
| 功能 | 实现 | 状态 |
|---|---|---|
| 错误处理 | GlobalExceptionHandler + Result<T> | ✅ 已实现 |
| 限流 | ASP.NET Core RateLimiter(3 策略) | ✅ 已实现 |
| 幂等性 | IdempotencyPipelineBehavior | ✅ 已实现 |
| 可观测性 | OpenTelemetry + OTLP | ✅ 已实现 |
| 健康检查 | Aspire ServiceDefaults | ✅ 已实现 |
| 审计管道 | Channel 队列 + 异步写入器 | ✅ 已实现 |
| 后台任务 | Quartz.NET JobHost | ✅ 已实现 |
| 缓存 | IMemoryCache | ✅ 已实现 |
| 特性开关 | IFeatureStore(null 默认) | 📋 计划中 |
| HTTP 弹性 | Polly/Retry | 📋 计划中 |
| 实时通信 | IChatRealtimeAdapter | 📋 计划中 |
Mediator 管道 — 横切骨干
大多数横切关注点通过 Mediator 管道应用,确保每个请求自动受益:
请求 → 日志 → 授权 → 验证 → 幂等性 → 事务 → 活动审计 → 处理器无需每个端点配置——管道行为注册一次,全局应用。
中间件链 — 请求级关注点
请求级横切行为由 Program.cs 中的中间件管道处理:
ExceptionHandler → CorrelationId → Authentication → DelegationToken→ TenantResolution → RequestAudit → Authorization → RateLimiter → Endpoints设计理念
- 约定优于配置:大多数横切功能开箱即用
- Null 默认值:每个端口都有 null/默认实现——无需基础设施即可启动
- AOT 兼容:API 宿主保持裁剪安全;重依赖(Quartz、SignalR)在独立宿主中运行
- 可配置:功能可通过
appsettings.json切换或配置