BaseStatefulBolt (Storm Core) против StateFactory (Storm Trident)

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

Могу ли я использовать BaseStatefulBolt? Или единственное решение - трезубец для этого сценария?

Какая между ними разница. Потому что внутри трезубца тоже есть государственная фабрика.

Спасибо.


person Joker    schedule 28.03.2017    source источник


Ответы (1)


Я думаю, что разница в том, что трезубец находится на более высоком уровне, чем BaseStatefulBol, у него есть некоторые параметры для подсчета, такие как group by,persistentAggregate,aggregate .

Я использовал трезубец для подсчета общего количества просмотров на пользователя. Если нас интересует только текущее общее количество, я думаю, мы можем использовать трезубец, используя MemoryMapState.Factory() и реализуя действие класса для подсчета или суммирования.

В вашем случае вам нужно управлять статусом некоторых текущих полей, я думаю, что реализация BaseStatefulBolt - хороший выбор, у него есть KeyValueState для сохранения текущего состояния.

person Pham Hung    schedule 28.03.2017