메시지 큐와 카프카
·
Kafka
메시지 큐란?메시지 큐는 분산된 환경에서 프로세스나 프로그램의 시스템 간 데이터를 교환하기 위해 사용되는 통신 기법이다. 그리고 메시지를 일시적으로 저장하는 큐(queue)로 송신자(producer)와 수신자(receiver/consumer) 간비동기 통신을 가능하게 한다. 메시지 큐 사용 이유이러한 메시지 큐를 사용하는 이유가 뭘까?비동기 처리 : 메시지 큐를 사용하면 producer와 consumer가 독립적으로 작동할 수 있다.이는 producer는 메시지를 큐에 넣고 바로 다음 작업을 처리할 수 있고, consumer도 메시지를 수신하며 자신의 속도에 맞게 메시지를 처리할 수 있다.느슨한 결합 (decoupling) : 시스템 간 서로 직접 통신하지 않고 메시지 큐를 이용하기 때문에 시스템의 각..
Kafka Streams window가 종료되는 시점에 집계 결과를 바로 처리할 수 없을까?
·
Kafka
Kafka Streams API를 이용하여 실시간 데이터 파이프라인을 구축하는 중 직면한 문제를 기록했다. 우선 실시간 파이프라인의 대략적인 플로우를 설명하면 A라는 토픽에 데이터가 특정 시간 동안 얼마나 들어오는지 계산하여 B라는 토픽에 데이터를 적재하는 토폴로지를 구성하고 있다. 여기서 핵심은 특정 시간 동안 내가 원하는 데이터가 몇 개가 들어오는지 파악하는 것이다. 현 상황우선 A라는 토픽에서 데이터를 읽어와 조건에 맞춰 filter() 메서드를 이용해 필터링 처리 한 이후 groupBy() 메서드로 특정 값 기준으로 데이터를 그룹화시킨 다음 count 메서드로 개수를 산정했다. 이렇게 하면 A라는 토픽에 들어오는 데이터 중 filter 조건에 맞는 데이터의 개수를 전부 카운트하게 된다.이때, 특정..