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