不同Kafka主题的多个@ManagedListener调用同一方法

des4xlb0  于 2022-11-21  发布在  Apache
关注(0)|答案(2)|浏览(171)

我 正在 使用 的 现有 代码 每次 都 使用 重复 代码 创建 新 方法 , 因为 它 使用 的@* * ManagedListener * * 是 使用 * * Java Spring Boot * * 为 不同 的 Kafka Topics 和 diff 配置 配置 配置 的 。

`@ManagedListener({configurations for Kafka topic-a})
method1(){
//logic to handle data
}

@ManagedListener({configurations for Kafka topic-b})
method2(){
//same logic as method1 copied
}

@ManagedListener({configurations for Kafka topic-c})
method3(){
//same logic as method1 copied again
}`

中 的 每 一 个
有 没有 一 种 方法 可以 让 监听 器 配置 为 不同 的 Kafka 主题 配置 , 这些 配置 都 直接 调用 method1 ? 我 正在 尝试 找到 一 种 方法 来 避免 重复 代码 。
我 试图 向 同一 个 方法 添加 多 个@managedListener 注解 , 但 似乎 必须 是 一 对 一 的 。
预期 的 结果 是 能够 接收 来自 多 个 不同 Kafka 主题 的 信息 。

bt1cpqcv

bt1cpqcv1#

我不确定@ManagedListener在这里的用法,因为@KafkaListener更常用于设置Kafka使用者。这个注解已经支持使用多个主题(假设使用者配置工厂相同),所以无论如何都不需要多个方法。
但是注解并不阻止您调用任何通用方法。
但是,我建议将所有公共逻辑提取到一个未注解为Kafka侦听器的函数中。

vh0rcniy

vh0rcniy2#

我不知道@ManagedListener是什么,但@KafkaListener是一个@Repeatable注解(可以在一个方法上放置多个注解)。

相关问题