hongawen
646cc6c238
feat(mq-starter-core): 同 group 订阅 tag 不一致启动 fail-fast,病态 tag 表达式打 WARN
同组配不同 tag 时消息只投组内某一个消费者,不匹配方直接 ACK 吞掉、另一方
永远收不到(订阅关系不一致,静默丢消息级事故,README 原本只靠文字约定)。
现在注解扫描期强校验:同一 group 声明不等价的 tag 表达式直接 IllegalStateException,
报错点名 group、冲突表达式与两个方法。等价性按 MqTagMatcher.validParts 有效
tag 集合比较("A || B" 与 "B||A" 等价,*/空/病态式同为全收),只覆盖单应用内。
- MqTagMatcher 新增 validParts / looksMisconfigured,matches 重构为基于
validParts,解析口径单一来源(每消息多一次小集合分配,可忽略)
- 病态表达式("||"、纯空白:写了内容却解析不出有效 tag)扫描期打 WARN 不阻断,
redis 端静默全收 vs rocketmq 端行为不同的分叉维持现状(拍板记录不修)
- README tag 小节、CLAUDE.md 签名约束一节同步
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>