我从 Akka Streams 开始,到目前为止一切顺利。但是,我遇到了一个我不知道如何处理的用例。该场景是一个流,其中 ActorPublisher 作为源,它使用来自 Kafka 的消息,而订阅者作为接收器,用于更新 Cassandra 表。
Kafka ~> 一些映射操作 ~> Cassandra
关键是,每次成功处理消息并插入 Cassandra 时,我都想明确地向 Kafka 确认,以便我可以在发生灾难和服务失败时重新读取消息,即至少某种一次交付行为。就 Akka Streams 而言,我该如何处理?是受支持的方案吗?
确实,我总是可以为 Kafka 消费者配置自动提交行为,但我宁愿控制我阅读消息的方式。
更新
关于这个话题,我们目前正在评估Reactive Kafka,他们在 0.8 版本的 kafka 中包含手动提交(这些人的荣誉)。这个特性将允许我们实现我们需要的 alod 行为。