Как реализовать что-то похожее на Storm DRPC в Samza?

У меня есть задание samza с рядом задач, каждая из которых содержит некоторое состояние в своем встроенном хранилище. Я хочу предоставить доступ к этому хранилищу для чтения внешнему миру через какой-то механизм RPC. Что может быть лучшим решением для этого?

Вот один абзац в документации Samza об этом:

Samza does not currently have an equivalent API to DRPC, 
but you can build it yourself using Samza’s stream 
processing primitives.

Единственное решение, которое приходит мне в голову, — это сделать так, чтобы мои задачи, в дополнение к обычной обработке, потребляли сообщения запроса с некоторыми идентификаторами корреляции в специальной теме запроса и помещали ответные сообщения с теми же идентификаторами корреляции в специальную тему ответа. Так что это похоже на решение RPC-over-Kafka, которое кажется мне неоптимальным.

Любые мысли приветствуются!


person Vladimir Lebedev    schedule 31.03.2015    source источник


Ответы (1)


Насколько я помню, встроенный магазин бэкапится в теме Kafka. При установке чего-либо в магазине сообщение выдается в тему. Таким образом, вы можете использовать эту тему и «клонировать» встроенное хранилище в другую базу данных. Затем вы можете запросить базу данных. Или вы можете использовать только базу данных вместо встроенного хранилища. Но такой подход может привести к проблемам с производительностью в вашей работе Samza...

person Lukáš Havrlant    schedule 25.08.2015