Как масштабировать с помощью esper? - PullRequest
8 голосов
/ 06 февраля 2012

Я искал Esper (и Storm) для потоковой обработки. Esper, кажется, делает именно то, что я хочу ... то есть, вращение означает, медианы, сложные запросы и т. Д. ... но одна вещь заставляет меня задуматься.

Как мне масштабировать до нескольких экземпляров с Esper?

Насколько я понимаю, Storm управляет распределенной обработкой, но с Esper вы в одиночку.

Мне не нужно было бы делать это в обозримом будущем, но по мере того, как мы растем, наши объемы данных также должны будут масштабироваться. Скорее всего, мы будем развертывать в Amazon EC2.

Нужно ли запускать несколько серверов и данные шарда перед отправкой их в приложение Esper?

Есть ли более изящный способ справиться с этим?

-Sajal

Ответы [ 2 ]

9 голосов
/ 19 марта 2012

Вы можете запустить экземпляр Esper внутри болта, это означает, что Storm будет обрабатывать федерацию кортежей / событий, а Esper будет обрабатывать CEP для событий, которые он получает в данном болте.

Здесь есть некоторый код и информация о внедрении Esper в Storm Bolt: http://tomdzk.wordpress.com/2011/09/28/storm-esper/

Однако ... У вас должен быть сценарий использования, который поддерживает относительно не зависящие от состояния движки Esper, обрабатывающие подмножество данных.

Например: вы вычисляете среднесуточную температуру по городу. Если не распределять свои кортежи, используя shuffleGrouping на основе поля города, то каждый болт Эспера может иметь различный набор данных для города.

В основном, обязательно ознакомьтесь с тем, как данные распределяются в топологии Storm, прежде чем переходить на эту архитектуру.

0 голосов
/ 30 марта 2012

По вашему вопросу, похоже EsperHA актуально?Вы смотрели на это?

EsperHA - это комплексное решение для обработки событий ESP / CEP без простоев.Он сочетает в себе Esper с локальным кэшированием в памяти, отказоустойчивым переполнением диска или базы данных и кластерной конфигурацией с возможностями горячего резервного копирования.

...