Commit Graph
2 Commits
Author SHA1 Message Date
windyboy 6de3fa6c9c feat(observability): U12 可观测底座(ACM2-10 U12/R05/N31b)
- logback:logstash 通道先加 AsyncAppender(queueSize 4096、neverBlock、discardingThreshold 0)
  ——logstash 不可达不阻塞业务线程(N31b 顺序约束:先降级再补日志);MDC 增加 traceId/target
- 结构化日志 + MDC traceId(TraceLog.withTrace=cminmsgsId/eventId):
  InboxService 收报 INFO;MessageProcessor SUCCEEDED/SKIPPED INFO、FAILED/解码失败 WARN、
  DEAD(MALFORMED/毒丸/EXHAUSTED) ERROR;SnapshotFlow staging/CAS WARN、快照成功 INFO;
  Dispatcher 发送 DEBUG、逐条/整批重试 WARN、DEAD(DLQ) ERROR、flushSchd 批次 INFO;
  ReplayService 重放 INFO/非法类 WARN;PipelineLifecycle 起停 INFO
- 自定义健康指示器(infra/health):redis-flight-store / kafka-delivery——BeanProvider 可选解析,
  缺 bean(未 stub 也未实装)报 DOWN 而非启动失败;/health 聚合
- 保留:micrometer 队列深度/投递延迟 gauge 依赖版本选型(micronaut-micrometer 与平台 BOM 5.1.3
  对齐待锁),随数据层/真实 client 批次补;U13 毒丸超时告警与 DLQ 巡检入口仍属 WP2
2026-09-06 21:02:27 +08:00
windyboy f6da0cb782 feat(runtime): U07 生命周期装配 + stub 装配冒烟(ACM2-10 U07/U01 遗留)
- PipelineLifecycle:ServerStartupEvent 后在专用单线程(msgx-pump/msgx-dispatcher,daemon)
  拉起 Pump/Dispatcher 循环;停机 requestStop+interrupt+join;@Requires(msgx.pipeline.autostart=true)
- PipelineProps.pipeline.autostart(默认 false,生产/测试默认不自动起循环,防泄漏线程)
- stub 装配(infra/stub,@Requires(msgx.stubs=true)):7 仓储内存实装 + StubXmlCodec(未实装
  → CODEC_ERROR 走 FAILED 可重放路径)+ StubRedis + StubDeliveryPort + Holder Factory
- 配置:application-dev.yml(stubs+autostart,/env、/beans 放开,无需 DB 即可 dev 跑通);
  application-test.yml(stubs=true、autostart=false);README 补 dev stub 运行说明
- PipelineSmokeTest(4):等价 /beans 装配核验 + 收报→主泵领取→FAILED(CODEC_ERROR) + U11 重放
  回 PENDING + Dispatcher flush 聚合(stub 用例前清内存状态防上下文复用串扰)
- 全量测试 34 个通过
2026-09-06 20:53:14 +08:00