2015-05-27 62 views
3

我以Akka Streams開始,至此一切進展順利。但是,我遇到了一個我不知道如何處理的用例。該場景是一個包含ActorPublisher的流,它將來自Kafka和訂戶的消息用作更新Cassandra表的接收器。Akka-Streams:Kafka和Cassandra的至少一次交付行爲

卡夫卡〜>有些映射操作〜>卡桑德拉

的一點是,我想每一個消息已成功處理,並插入到卡桑德拉一次明確確認卡夫卡這樣我就可以重新讀取在發生災難並且服務失敗的情況下,即某種至少一次交付行爲的消息。我怎麼能用Akka Streams來解決這個問題?是支持的方案嗎?

確實,我總是可以配置卡夫卡消費者的自動提交行爲,但我寧願控制自己如何閱讀消息。

更新

關於這個話題,我們目前正在評估Reactive Kafka,他們已經列入手冊中卡夫卡提交爲0.8版本(這些傢伙榮譽)。這個功能可以讓我們實現我們需要的alod行爲。

回答

2

我想你可以使用使用PushPullStage定製的流處理爲akka streams documentation

+0

這聽起來像是一種合適的方式來獲得在流動過程細粒度控制解釋。我會看看。謝謝!。 –

+0

@JuanJoséVázquezDelgado。我正在研究一個類似的用例。 Storm有這些消息保證,但是如果Akka流可以向Kafka提供至少一次消息傳遞保證,則Akka流看起來很有趣。你有機會看看這個嗎?您與我們分享的任何有趣的結論或調查結果? – joholo

+0

我會嘗試將[此方法]付諸實踐(https://groups.google.com/d/msg/akka-user/ujluAC4RCPo/AMbkqZidxAoJ),正如Akka列表中所述。只要我想出解決方案,我就會更新此主題。感謝您的關注。 –