4

我从 Akka Streams 开始,到目前为止一切顺利。但是,我遇到了一个我不知道如何处理的用例。该场景是一个流,其中 ActorPublisher 作为源,它使用来自 Kafka 的消息,而订阅者作为接收器,用于更新 Cassandra 表。

Kafka ~> 一些映射操作 ~> Cassandra

关键是,每次成功处理消息并插入 Cassandra 时,我都想明确地向 Kafka 确认,以便我可以在发生灾难和服务失败时重新读取消息,即至少某种一次交付行为。就 Akka Streams 而言,我该如何处理?是受支持的方案吗?

确实,我总是可以为 Kafka 消费者配置自动提交行为,但我宁愿控制我阅读消息的方式。

更新

关于这个话题,我们目前正在评估Reactive Kafka,他们在 0.8 版本的 kafka 中包含手动提交(这些人的荣誉)。这个特性将允许我们实现我们需要的 alod 行为。

4

1 回答 1

2

我认为您可以使用 PushPullStage 使用自定义流处理,如akka 流文档中所述

于 2015-05-28T18:54:09.150 回答