Akka-Streams:Kafka和Cassandra的至少一次交付行为

时间:2015-05-27 07:33:37

标签: scala cassandra akka apache-kafka reactive-streams

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

Kafka~>一些映射操作〜>卡桑德拉

关键是我每次成功处理消息并插入Cassandra时都要向Kafka明确确认,这样我就可以重新读取消息,以防发生灾难并且服务失败,即某种至少一次交付行为。我怎么能用Akka Streams来解决这个问题?支持的方案是什么?。

确实,我总是可以使用自动提交行为配置Kafka使用者,但我宁愿控制我如何阅读这些消息。

更新

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

1 个答案:

答案 0 :(得分:2)

我认为您可以使用PushPullStage进行自定义流处理,如akka streams documentation

中所述