производить кафку в тему и писать в гос хранилище за одну транзакцию - PullRequest
0 голосов
/ 28 февраля 2019

Можно ли произвести вывод в тему Кафки и записать в хранилище состояний за одну транзакцию?Но не запускайте транзакцию как часть потребления темы.

РЕДАКТИРОВАТЬ: Причина, по которой я должен сделать это, чтобы иметь возможность отфильтровывать повторяющиеся запросы.Например, сервис предоставляет интерфейс REST и просто пишет сообщение в тему.Если возможно произвести преобразование в тему и записать в хранилище состояний в одной транзакции, то я могу легко сначала запросить хранилище состояний, чтобы отфильтровать дубликат.Это также предполагает, что тайм-аут транзакции будет меньше, чем тайм-аут REST, но не тот, который связан с вопросом.

Мне также известно о решении, предоставленном здесь Confluent.Но это будет работать до тех пор, пока время синхронизации «из темы в магазин» будет меньше времени блокировки.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Если я понимаю, что вы правильно используете регистр, вы можете сделать так:

  • Записать результат вызова REST в какую-либо тему - raw-data (используя продюсера)

  • Используйте Kafka Streams для обработки данных из темы raw-data.Используя Kafka Streams, вы можете реализовать всю логику проверки / фильтрации дубликатов и т. Д. И записи результатов в золотую тему.

0 голосов
/ 01 марта 2019

https://kafka.apache.org/10/javadoc/org/apache/kafka/streams/processor/StateStore.html

Государственное хранилище является частью Streams API.Итак, государственный магазин связан с Kafka-потоками.Я бы порекомендовал использовать заголовки в сообщении для поддержания информации о состоянии.

Или

Создайте другую тему для хранения промежуточной информации.

...