Akka-Streams: поведение по крайней мере при доставке с Kafka и Cassandra

Начинаю с Akka Streams и пока все идет хорошо. Однако я встречал вариант использования, к которому не знаю, как подойти. Сценарий представляет собой поток с ActorPublisher в качестве источника, который принимает сообщения от Kafka, и подписчиком в качестве приемника, который обновляет таблицу Cassandra.

Кафка ~> некоторые операции с отображением ~> Кассандра

Дело в том, что я хотел бы явно подтверждать Kafka каждый раз, когда сообщение было успешно обработано и вставлено в Cassandra, чтобы я мог перечитать сообщение в случае аварии и сбоя службы, т.е. после доставки поведение. Как я могу подойти к этому с точки зрения Akka Streams ?. Поддерживаемый сценарий ?.

Это правда, что я всегда могу настроить потребителя Kafka на автоматическую фиксацию, но я бы предпочел контролировать, как я читаю сообщения.

Обновить

Что касается этой темы, в настоящее время мы оцениваем Reactive Kafka, где они включили ручную фиксацию в kafka как версии 0.8 (спасибо этим ребятам). Эта функция позволит нам реализовать необходимое нам поведение.


person Juan José Vázquez Delgado    schedule 27.05.2015    source источник


Ответы (1)


Я думаю, вы могли бы использовать пользовательскую обработку потока с помощью PushPullStage, как описано в документация по потокам AKKA

person Carlos Fernandes    schedule 28.05.2015
comment
Это звучит как правильный способ получить точный контроль над процессом потоковой передачи. Я посмотрю. Спасибо!. - person Juan José Vázquez Delgado; 29.05.2015
comment
@ JuanJoséVázquezDelgado. Я рассматриваю аналогичный вариант использования. У Storm есть эти гарантии обмена сообщениями, но потоки Akka выглядят интересно, если они могут обеспечить хотя бы один обмен сообщениями с Kafka. У вас была возможность разобраться в этом? Вы поделитесь с нами любыми интересными выводами или находками? - person joholo; 11.06.2015
comment
Я постараюсь применить на практике этот подход, поскольку он был упомянут в списке Akka. Я обновлю эту ветку, как только найду решение. Спасибо за интерес. - person Juan José Vázquez Delgado; 15.06.2015