小编Hos*_*ein的帖子

Kafka Streams - 使用容错定义自定义关系/非键值状态存储

我正在尝试使用 kafka 实现事件溯源。

我对流处理器应用程序的设想是一个典型的 3 层 Spring 应用程序,其中:

  • “表示”层被(由?)Kafka 流 API 取代。
  • 业务逻辑层由拓扑中的处理器 API 使用。
  • 此外,DB 是一个关系 H2 内存数据库,可通过 Spring Data JPA 存储库访问。存储库还实现了必要的接口,以便将它们注册为 Kafka 状态存储以使用好处(恢复和容错)

但我想知道我应该如何实现自定义状态存储部分?

我一直在寻找和:

  • 有一些接口,例如StateStore& StoreBuilderStoreBuilderwithLoggingEnabled()方法;但是如果我启用它,实际的更新和更改日志记录何时发生?通常示例都是键值存储,即使是自定义的。如果我不想要键值怎么办?kafka 文档中交互式查询部分的示例并没有削减它。

  • 我知道交互式查询。但它们似乎适合查询而不是更新;顾名思义。

在键值存储中,发送到更改日志的记录很简单。但是如果我不使用键值;我何时以及如何通知 kafka 我的状态已更改?

apache-kafka spring-cloud-stream apache-kafka-streams

1
推荐指数
1
解决办法
571
查看次数