You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debezium Server的application.properties中如何正确用变量自定义Topic名称

解决方案

你遇到的报错根因是Debezium Server基于Spring Boot开发,Spring Boot加载application.properties时会默认解析所有${}格式的配置占位符,你配置的${routedByValue}还没传递到Debezium的Outbox转换逻辑,就被Spring Boot提前解析,找不到对应配置就抛出NoSuchElementException。省略该配置时没有占位符,不会触发Spring的解析逻辑,因此运行正常。

修复方法

使用两个$对占位符做转义即可,Spring Boot解析时会自动把$$转换为单个$,最终传递给Debezium的就是符合要求的变量格式。

正确配置示例如下:

debezium.transforms.outbox.route.by.field=aggregate_type
# 用$$转义避免Spring Boot提前解析占位符
debezium.transforms.outbox.route.topic.replacement=myservice.$${routedByValue}

注意事项

  • 配置项正确名称为route.topic.replacement,不要漏写末尾的ment,否则配置不会生效。
  • 该配置生效后,生成的Topic名称会按照myservice.<aggregate_type字段取值>的规则生成,完全满足自定义Topic名称的需求。

内容的提问来源于stack exchange,提问作者Dazfl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:48:02