跳到主要内容
版本:3.0.0

Aegis 3.1 Roadmap

3.1 版本聚焦于运行管控能力补齐和关键基础设施完善,围绕 8 个方向推进。


1. 应用运行端口指定

当前 Aegis 应用的监听端口完全依赖 ASP.NET Core 标准方式(launchSettings.json / ASPNETCORE_URLS 环境变量),框架本身不参与端口决策。

3.1 将提供 Aegis 统一的端口配置入口,支持在 appsettings.jsonServerSettings 中直接指定监听地址和端口,同时支持多端点配置(HTTP + HTTPS)。

2. 框架排错与自查

3.1 将增强启动期和运行期的排错能力:

  • 启动排错增强:组件加载失败时提供可操作的修复指引,而非仅输出异常信息
  • 健康检查端点:整合 HealthChecker 为可配置组件,提供 /health 端点,展示组件状态、数据库连接、Redis 连通性等
  • 诊断端点:提供 /aegis/diag 端点,返回当前加载的组件列表、版本号和配置来源
  • 排错 FAQ 文档:整理常见启动异常及排查手册

3. 程序集整体管控

3.1 将对应用启动时的程序集加载和组件管理进行统一封装:

  • 内部管理器:将启动过程中分散的静态状态统一封装管理
  • 程序集过滤:支持在配置中排除不需要的程序集
  • 版本冲突检测:启动时检测同一组件的多版本共存并输出警告

4. CAP 消息总线

当前 Aegis 提供进程内 EventBus(基于 Channel)和 RocketMQ 客户端,但不支持基于本地消息表的分布式事务消息。

3.1 将新增 Aegis.CAP 组件,封装 DotNetCore.CAP,提供:

  • 多传输支持:RabbitMQ / Kafka / Redis Streams 等多种消息传输
  • 分布式事务消息:基于本地消息表,确保业务操作与消息发送的一致性
  • Aegis 风格接入:通过 Component.deps.json 启用,与 FreeSql UnitOfWork 事务集成
  • 上下文透传:自动透传用户上下文

同时将明确 EventBus(进程内)与 CAP(分布式)的选型指引,帮助开发者根据场景选择合适的消息方案。

5. Jobs 完善

3.1 将补齐延迟任务调度的关键缺失环节,使其达到生产可用:

  • 状态机闭环:完成 Succeeded / Canceled / Aborted 三个终态的状态转换和清理
  • 数据库轮询调度:完善 JobScheduler,实现从数据库定时捞取待执行任务注入时间轮
  • 状态上报:实现 JobStatusReporter,提供任务执行状态的可观测能力
  • 配置化:心跳间隔、轮询周期等参数从硬编码改为配置读取
  • 异常处理改进:结构化日志替代控制台输出,异常时正确通知状态机

6. Broker + Polly 弹性调用

当前 Aegis.Net.Broker 是成熟的声明式 HTTP 客户端,Aegis.Extensions.Polly 提供容错策略,但两者之间没有集成。3.1 将建立两者的结合机制:

  • 策略重写:提供完整的异步策略构建 API,支持重试 + 超时 + 熔断 + 降级的灵活组合
  • Broker 集成:在 BrokerClient 中支持注入 Polly 策略,让通过 Broker 发出的 HTTP 调用自动经过弹性策略保护
  • 声明式标注:在契约接口上通过 [Retry][CircuitBreaker][Timeout] 等特性标注策略,简化使用
  • 配置化:支持在 appsettings.json 中配置默认策略参数(重试次数、超时时间等)

7. .NET 6.0 多目标框架支持

当前 Aegis 绝大部分组件仅支持 .NET 8.0。.NET 6.0 是最后一个支持 Windows 7 客户端环境的 LTS 版本。

3.1 将对 Aegis 核心组件扩展 .NET 6.0 支持,采用分层策略:

层级模块.NET 6.0 支持
传输层Transfer / Context / Common✅ 多目标
工具层Configuration / Component / IdGenerator / EventBus / Extensions.Polly✅ 多目标
存储层FreeSql / Caching.Redis / Jobs.Postgres✅ 多目标
宿主层Core.Infrastructure / Swagger / Cors / Authentication / Authorization❌ .NET 8.0 only

每个组件文档将标注支持的 TargetFramework,方便开发者确认兼容性。

8. 本机 IP 获取

当前 Aegis 仅提供获取请求来源 IP(客户端/远程 IP)的能力,无法获取本机 IP 地址。

3.1 将在 Aegis.Core.Common 中新增本机 IP 工具类:

  • 获取本机所有有效 IP 地址(自动排除 loopback 和 link-local)
  • 支持 IPv4 / IPv6 筛选
  • 支持多网卡环境
  • ActionContext 中增加本机 IP 信息
  • 启动时输出本机 IP 列表

优先级

必做

功能方向
启动排错增强排错与自查
新增 Aegis.CAP 组件CAP 消息总线
CAP 与 Aegis 体系集成CAP 消息总线
状态机终态处理器实现Jobs 完善
JobScheduler 数据库轮询实现Jobs 完善
重写 HttpPolicy(异步策略 API)Broker + Polly
Broker + Polly 集成机制Broker + Polly
多目标改造策略制定.NET 6.0 多目标
核心无依赖模块多目标化.NET 6.0 多目标
新增本机 IP 工具类本机 IP

应做

功能方向
端口配置入口端口指定
组件完整性校验排错与自查
HealthChecker 集成排错与自查
启动异常 FAQ 文档排错与自查
AppCore 内部管理器程序集管控
程序集过滤机制程序集管控
CAP 与 FreeSql 事务集成CAP 消息总线
CAP 使用文档CAP 消息总线
JobStatusReporter / 配置化 / 异常处理Jobs 完善
声明式策略标注Broker + Polly
Polly + Broker 最佳实践文档Broker + Polly
Demo 更新Broker + Polly
NuGet 包版本条件引用.NET 6.0 多目标
组件层多目标化.NET 6.0 多目标
本机 IP IPv4/IPv6 筛选 + ActionContext 扩展本机 IP