Spring 启动 Kafka 消息传递。如何使用 SpEL 管理处理程序访问

Spring boot Kafka messaging. How to use SpEL to manage handler access

我在 Spring 引导项目中使用 Kafka。如果您有简单的流程(使用 @KafkaListener@KafkaHandler)并且 spring 几乎为开发准备了一切,那么有很多好处。

在我的应用程序中,我对相同的消息数据有不同的处理程序。我想使用 SpEL 来管理操纵 header 数据的处理程序,但我没有检测到相应的 API。

所以我的问题是:是否可以通过 SpEL 管理我的处理程序,以防我有特殊的 header(例如 Header,例如 "X-OPERATION_TYPE":"patch")?怎么样?

P.S.

我可以使用 GoF Strategy 作为示例来解决问题,但我希望 spring 已经有针对该情况的解决方案。

A​​pache Kafka Spring 中没有这样的 "conditional routing",但您可以在单个 @KafkaListener 中使用纯 if...elseswitch.

要获得更全面的路由逻辑,最好查看 Spring 集成:https://docs.spring.io/spring-integration/docs/5.0.9.RELEASE/reference/html/messaging-routing-chapter.html