kafka在一次交易中产生主题并写入状态存储

时间:2019-02-28 20:16:00

标签: apache-kafka kafka-producer-api confluent-kafka

是否可以在单个事务中生成Kafka主题并写入状态存储?但不要将交易作为主题消费的一部分。

编辑:之所以这样做,是为了能够过滤出重复的请求。例如。服务公开REST接口,仅将消息写入主题。如果可以在单个事务中产生主题并写入状态存储,那么我可以轻松地首先查询状态存储以过滤出重复项。这也假定事务超时将小于REST超时,但与问题无关。

我也知道Confluent提供的here解决方案。但是,只要“从主题到商店”的同步时间小于阻止时间,这将起作用。

2 个答案:

答案 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,您可以实现检查/过滤重复项等并将结果写入黄金主题的整个逻辑。