나는 kafka -> flink -> elastic search를 사용하여 java에서 poc 프로젝트를 진행하고 있습니다.상태 변경 이벤트를 기반으로 분산 된 방식으로 얼마나 많은 "클라이언트"가 플립크 상태에 있는지를 계산하는 방법은 무엇입니까? 상태 유지 객체가 필요합니다.
On 카프카에서는 특정 주제와 같이 0에서 최대 수천 회의 이벤트까지 예측할 수없는 이벤트가 생성됩니다. 나는 10 개 주를
{"stateA":54, "stateB":100, ... "stateJ":34}
: [Created, ... , Deleted]
을 15 분 평균 수명주기와
{"gid":"abcd-8910-2ca4227527f9", "state":"stateA", "timestamp:1465566255, "other unusefull info":"..."}
FLINK이 이벤트를 소비하고 제 2 탄성에 모든 싱크 각 상태의 예에서 이벤트의 수를 검색한다 . 상태는 초당 두 번 바뀔 수 있습니다. 이론적으로 새로운 상태가 추가 될 수 있습니다. FLINK의 시간 창 https://flink.apache.org/news/2015/12/04/Introducing-windows.html
문제를 사용하는 모든 두 번째 내가 생각하고 스트림을 싱크하기 위해
내가 수를 감소/증가 할 수에 대한 guid->previous-state
및 stateX->count
위해 정보와 상태 객체를 필요로한다는 것입니다 새 이벤트가 발생할 때
, 나는 아직 FLINK 상태 스트림 처리 파고하지 않은 상태 증기 처리에 대한 초안 문서를 발견했다. 첫 번째 단계에서는 정적 객체를 사용하려고 생각하지만 여러 flink 인스턴스가 시작될 때이 방법은 작동하지 않습니다.
내가 물어보고 싶은 :
- 당신이이 방법에 대해 어떻게 생각하십니까?
- 이러한 종류의 스트림 처리에는 flink가 적합합니까?
- 이 문제를 해결하기위한 귀하의 접근 방법은 무엇입니까?
또한 windowed stateful 스트림 솔루션 (또는 다른 솔루션)에 대한 일부 코드 단편을 고맙게 생각합니다.
감사합니다.