我正在做的项目必须根据消息中的“主题”字段将消息路由到Kafka主题。当路由失败时,例如“主题”字段为空,我会将消息发送到一个死信主题进行手动修复。是否有可能检索单个消息或消息列表,以便手动修复?我发现我不得不写另一个@KafkaListner,它监听死信主题并处理消息。这里的问题是我需要手动修复它们。
7fyelxc51#
我认为您正在寻找的是某种console应用程序来处理DLT消息。我能想到的最简单的方法是使用@KafkaListener监听DLT并将记录持久化到数据库中,然后可以使用GET端点来访问这些消息。您将有另一个端点,在那里您可以POST或PUT固定的记录,或者可能只PATCH必要的字段。请注意,Kafka记录是immutable,所以您实际上将创建一个新记录并发送它。此外,请确保您根据原始记录正确地验证新记录,这样您就不容易出现手动错误。当然,如果有一个合适的前端使处理更容易,这一切都会更好。
console
@KafkaListener
GET
POST
PUT
PATCH
immutable
68bkxrlz2#
你不能通过添加@KafkaListener来监听DLT消息,它不起作用。正确的注解是@DltHandler
2条答案
按热度按时间7fyelxc51#
我认为您正在寻找的是某种
console
应用程序来处理DLT消息。我能想到的最简单的方法是使用
@KafkaListener
监听DLT并将记录持久化到数据库中,然后可以使用GET
端点来访问这些消息。您将有另一个端点,在那里您可以
POST
或PUT
固定的记录,或者可能只PATCH
必要的字段。请注意,Kafka记录是immutable
,所以您实际上将创建一个新记录并发送它。此外,请确保您根据原始记录正确地验证新记录,这样您就不容易出现手动错误。当然,如果有一个合适的前端使处理更容易,这一切都会更好。
68bkxrlz2#
你不能通过添加@KafkaListener来监听DLT消息,它不起作用。正确的注解是@DltHandler