Java Kafka死信队列,仅适用于具有相同密钥的消息
我有一个卡夫卡主题Java Kafka死信队列,仅适用于具有相同密钥的消息,java,apache-kafka,event-sourcing,blacklist,dead-letter,Java,Apache Kafka,Event Sourcing,Blacklist,Dead Letter,我有一个卡夫卡主题HrEvents,其中包含大量招聘,解雇,退出,晋升和降级消息。每个HR事件消息都有一个employee_id属性(也是用于分区的键)和一个data属性,其中可能包含有关HR事件的任意详细信息 问题在于,我的应用程序需要处理的各种数据blob没有很好的文档记录,并且在任何时候都有可能消耗应用程序无法处理的HR事件。 对于每个员工id,应用程序必须按顺序处理所有人力资源事件,这一点很重要。同样重要的是,在影响一个员工id的处理失败后,所有其他员工id的所有HR事件都可以继续 失败
HrEvents
,其中包含大量招聘
,解雇
,退出
,晋升
和降级
消息。每个HR事件消息都有一个employee_id
属性(也是用于分区的键)和一个data
属性,其中可能包含有关HR事件的任意详细信息
问题在于,我的应用程序需要处理的各种数据blob没有很好的文档记录,并且在任何时候都有可能消耗应用程序无法处理的HR事件。
对于每个员工id
,应用程序必须按顺序处理所有人力资源事件,这一点很重要。同样重要的是,在影响一个员工id
的处理失败后,所有其他员工id
的所有HR事件都可以继续
失败的HR事件以及同一员工id
的所有后续HR事件应发布到死信队列中。一旦修补了应用程序-并且添加了对另一种未记录形式的数据blob的支持-这些HR事件就可以从死信队列中使用
我意识到,这还需要在消费者中维护某种形式的关键黑名单,其中存储了死信队列中至少一条未使用的HR事件消息的employee_id
s
是否存在允许我实现此问题解决方案的现有解决方案/java库
请原谅我的无知,但我正试图找到上述问题的解决方案,但我怀疑我可能没有用正确的术语进行搜索。请随意教我。听起来你应该能够利用卡夫卡流来实现这一点
死信队列可以建立一个KTable,它形成一种黑名单。当原始主题中出现新事件时,您将对现有ID的KTable执行查找,并将传入事件附加到该ID尚未处理的事件的值列表中