lili f2d85a072a feat(telemetry): 批量事件入口改 RocketMQ 异步消费(幂等·聚合/回灌行为不变) (W-REAL R1)
上报入口 /events/batch·/perf/beacon 从请求线程内同步写改为「轻量校验 + 投递 telemetry-event 主题、
消费侧异步落库+聚合+quality_score 回灌 feed」。灰度开关 telemetry.mq.enabled(默认关=同步回落、现行行为逐字不变)。

- TelemetryEventProducer:逐条投递 event/perf tag、keys=traceId、syncSend 带超时+RocketMQ 自带重试;
  发送失败不外抛、按 rejected 交前端重传兜底(不 500 阻断上报)。
- TelemetryEventConsumer:@RocketMQMessageListener 落地骨架,consumeThreadNumber=consumeThreadMax=8
  (min=max 破 consumeThreadMax 死参数坑,受 DB 池默认 10 约束);瞬时故障外抛触发 ≤16 次重投转 DLQ,
  毒消息吞掉 ack 防重投风暴;幂等由 eventId(uk_event_id)保证重投不双计。
- EventIngestServiceImpl:入口路由(MQ 在席=投递、缺席=同步回落),新增 consumeFromMq 单条事务入口
  逐字复用同步写核心 ingestOne——聚合行为与 quality_score 回灌 feed 行为与改造前一致,仅执行位置搬到消费线程;
  ObjectProvider 软注入生产者 + @Lazy 自代理保回落单条事务真生效。

验证:模块 59 单测绿(既有 EventIngestServiceImplTest 13 个逐字不变通过=回灌行为不变;新增生产者3/消费者4/
MQ路径5);连 mini-infra 真 broker(100.64.0.8:9876)往返 IT 绿(produce→broker→consume→consumeFromMq 转调,
往返序列化保真)。整条 HTTP POST→MQ→真库聚合行 的单体 e2e 待后端全栈窗口(同阶段〇 C1/C2/C3 处置)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 20:04:18 -07:00
2026-07-01 11:18:20 +08:00
Description
No description provided
240 MiB
Languages
Java 38.3%
JavaScript 28.5%
Python 19.4%
Vue 6.2%
TypeScript 3.8%
Other 3.7%