Я настоящий новичок в Шторме. У меня есть требование, которое очень похоже на следующее:
Допустим, у меня есть система ставок, как на любом сайте электронной коммерции, где мы можем делать ставки на любой продукт. Я получаю нагрузку, скажем, 1 миллион запросов в секунду. Теперь мне нужно получить две статистические данные в реальном времени и показать их пользователю в пользовательском интерфейсе.
- Общее количество ставок (пользователь может делать ставки дважды, поэтому нам нужно объединиться).
- Десять лучших заявок и соответствующих пользователей отсортированы по сумме ставок и отметке времени.
Вся эта статистика должна быть в реальном времени и последовательной. Так что я надеюсь, что шторм до этого.
Насколько я понимаю, мы можем использовать очередь сообщений, такую как kafka, для хранения входящих заявок в виде логов. Тогда какая-то группа потребителей может забрать их и сохранить в любой БД.
Но мне нужно знать, как шторм, использующий его болты, может собирать и находить мое окно из первой десятки и обновлять его в режиме реального времени, чтобы я мог взять его и показать в пользовательском интерфейсе.
Мое первоначальное усилие было похоже на
Кафка -> BiddingSpout -> болты (для фильтрации по текущей десятке) -> болт -> обновить результаты
Кафка -> BiddingSpout -> болт (счетчик) -> болт -> обновить результаты
Но я не могу понять, как болты будут фильтровать на основе текущей десятки результатов, которые обновляются очень быстро.