我们可以使用任何其他数据库(例如 MariaDB 或 MongoDB)来代替 Rocks DB 在 Kafka Streams 中存储状态,有什么方法可以配置它吗?

Sud*_*shi 5 mongodb apache-kafka spring-cloud-stream apache-kafka-streams

我有一个 Spring boot Kafka Stream 应用程序,它处理所有传入事件并将其存储在 Kafka Streams 内部提供的状态存储中,并使用交互式查询服务对其进行查询。在所有使用“RocksDB”的 Kafka Streams 中,我想用任何其他可配置的数据库(如 MariaDB 或 MongoDB)替换此 RocksDB。有办法做到吗?如果不

我如何配置 Kafka Stream 应用程序以使用 MongoDB 创建状态存储。

cri*_*007 4

StateStore / KeyValueStore 是 Kafka Streams 中的开放接口,可与TopologyBuilder.addStateStore

是的,您可以使用您选择的数据库将值具体化到您自己的存储实现中,但是如果存在任何数据库连接问题,尤其是远程数据库,它将影响处理语义。

相反,使用一个主题(更多的是事务日志),然后使用 Kafka Connect 进行跟踪是外部系统的正确方法