2017-03-28 6 views
0

폭풍 사용에 대해 혼란스러워합니다. 스트리밍 된 데이터를 사용하여 데이터 소스의 상태를 측정하려고합니다. 상태는 일부 필드의 결합으로 계산되며,이 필드는 다른 시간 간격을 얻을 수 있습니다. 그래서 데이터 소스의 상태를 측정하기 위해 필드를 저장해야합니다.BaseStatefulBolt (Storm Core) 대 StateFactory (Storm Trident)

BaseStatefulBolt를 사용할 수 있습니까? 아니면 유일한 솔루션은이 cenario에 대한 트라이던트입니까?

그들 사이의 차이점은 무엇입니까? 왜냐하면 트라이던트 내부에 statefactory가 있기 때문입니다.

감사합니다.

답변

0

나는 트라이던트가 BaseStatefulBol보다 높은 레벨이라고 생각합니다. 그룹별로, persistentAggregate, aggregate에 대해 계산할 수있는 몇 가지 옵션이 있습니다.

사용자 당 총보기 수에 트라이던트를 사용했습니다. 현재의 총 카운트에 대해서만 신경 쓰면, 우리는 MemoryMapState.Factory()를 사용하여 트라이던트를 사용할 수 있다고 생각합니다. 그리고 클래스는 계산 또는 합산을위한 액션을 구현합니다.

현재 필드의 상태를 관리해야하는 경우, BaseStatefulBolt를 구현하는 것이 좋은 선택이며 현재 상태를 저장하는 KeyValueState가 있다고 생각합니다.