Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Kafka死信队列,仅适用于具有相同密钥的消息_Java_Apache Kafka_Event Sourcing_Blacklist_Dead Letter - Fatal编程技术网

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尚未处理的事件的值列表中