Как сохранить распределенный HashMap в Apache Storm Cluster - PullRequest
0 голосов
/ 17 мая 2018

У нас есть сценарий использования в Apache Storm, где нам нужно получить данные из исходной системы, а затем выполнить некоторую операцию с полученным кортежем, но также хотим просмотреть данные в базе данных.Но совершать каждый раз вызов базы данных для миллионов записей невозможно.Итак, есть ли способ, при котором мы можем загрузить распределенную хеш-карту при запуске, и когда кортеж обрабатывается в Bolt или Spout, сначала ищите эту хеш-карту и, если значение не присутствует в HashMap, затем выполните Datbase Call и обновитесоответствующая Карта, которая должна быть доступна через.

1 Ответ

0 голосов
/ 18 мая 2018

Нет ничего встроенного (т.е. без запуска внешних служб), которое было бы доступно для всей топологии, поскольку ваши болты, вероятно, будут работать в разных JVM или даже на разных хостах.Если вам нужен распределенный кеш, посмотрите на что-то вроде Redis https://redis.io/.

Возможно, вы захотите взглянуть на https://storm.apache.org/releases/2.0.0-SNAPSHOT/State-checkpointing.html, API должен иметь возможность делать то, что вы хотите, и есть поддержка интеграции Redis,Если вам не нужна функциональность контрольных точек, вы, конечно, можете просто использовать Redis напрямую.

...