是否可以生成Kafka主题并在单个事务中写入状态存储?但不要将事务作为主题消费的一部分启动。
编辑:我这样做的原因是能够过滤掉重复的请求。例如。服务公开REST接口,只是将消息写入主题。如果可以在单个事务中生成主题并写入状态存储,那么我可以轻松地首先查询状态存储以过滤掉重复。这也假定事务超时将小于REST超时,但不会与问题相关。
我也知道Confluent提供的here解决方案。但只要“从主题到商店”的同步时间小于阻塞时间,这将起作用。
https://kafka.apache.org/10/javadoc/org/apache/kafka/streams/processor/StateStore.html
State store是Streams API的一部分。因此,State store与Kafka-streams相关联。我建议在消息中使用标头来维护状态信息。
要么
创建另一个主题来存储中间信息。
如果我理解你正确使用案例,你可以这样做:
raw-data
(使用生产者)raw-data
主题的数据。使用Kafka Streams,您可以实现检查/过滤重复项等的整个逻辑,并将结果写入黄金主题。