Skip to content

配置设计 ​

本文只做配置分层说明,不再重复定义 schema。Shield 当前 core runtime 配置 的权威来源是 配置运行时语义。

当前源码和历史配置里仍可能存在旧字段;这些字段不能视为当前重构契约。

配置分层 ​

Core Schema ​

core 只定义单节点 runtime 必需配置:

  • app
  • log
  • lua
  • actors(含 gateway actor 的 network listener/profile 与 rpc.routes descriptor 声明)
  • plugins
  • bootstrap
  • shutdown

字段级规则、校验、热更新边界和合并策略统一以 runtime-config.md 为准。

Optional Module Schema ​

以下配置段不属于 core schema,由对应官方可选模块单独解释:

core bootstrap 只负责把这些配置快照传给已启用模块,不在 core 中做字段解释和校验。

Plugins Schema ​

plugins 段(plugins.directory、plugins.instances、plugins.bindings)不属于 core schema,也不属于 optional module。它由 shield_bootstrap 读取后整段交给 插件系统 v1 的 PluginHost 处理:扫描、catalog、依赖解析、配置 schema 校验、绑定解析都在插件系统内部完成。core 配置层只透传,不解释字段。

最小示例 ​

yaml
app:
  name: hello_world

log:
  level: info
  console: true

actors:
  - name: bootstrap
    script: scripts/bootstrap.lua
    instances: 1
    required: true

默认最小配置不声明 plugins.instances,因此不需要任何 provider 动态库即可启动。需要数据后端时再按 插件系统 v1 增加 plugins.directory、plugins.instances 和 plugins.bindings。

已删除的旧方向 ​

以下字段和方向不再进入当前 core 配置设计:

  • discovery
  • metrics
  • health
  • 旧顶层 database / redis
  • middleware
  • conditions
  • annotations
  • DI/IoC 装配配置
  • network.protocol.routes 内联路由(由 actors[].rpc.routes descriptor 取代)

如果未来确实需要,只能在非 core 扩展文档中重新定义,不能再反向塞回 runtime-config.md。

Apache License 2.0