192
2
부
구현
카프카
최근 인기를 얻고 있는 카프카
Kafka
는 특수한 브로커로서 주목할 가치가 있다. 이러한 인기는 스
트림 프로세싱 파이프라인의 구현으로 대용량 데이터를 이동하는 데 카프카가 유용하다는 점
에도 기인한다. 또한 배치 지향 처리에서 좀 더 실시간적인 처리로 전환하는 데도 도움이 된다.
카프카의 몇몇 특징은 강조할 만하다. 우선, 실제로 대규모를 위해 설계됐다. 카프카는 링크드
인
Linkedin
에서 기존의 여러 메시지 클러스터를 단일 플랫폼으로 대체하기 위해 만들어졌다. 또
한 카프카는 여러 소비자와 생산자를 허용하기 위해 만들어졌다. 예를 들어 필자는
5
만이 넘는
생산자와 소비자가 같은 클러스터에서 작업하는 대규모 기술 회사의 한 전문가와 이야기를 나
눴다. 객관적으로 볼 때 확장 수준에서 문제가 되는 조직은 매우 적겠지만, 카프카를 쉽게 (상
대적으로 쉽게 ) 확장할 수 있는 기능은 일부 조직에 매우 유용할 것이다.
카프카의 상당히 독특한 또 하나의 기능은 메시지 영속성이다. 일반 메시지 브로커를 사용할
경우, 마지막 소비자가 메시지를 수신하면 브로커는 더 이상 해당 메시지를 보관할 필요가 없
다. 카프카를 사용하면 메시지 저장 기간을 설정할 수 있는데, 다시 말해 영원히 저장할 수 있
다는 의미다. 이를 통해 소비자가 이미 처리한 메시지를 다시 받아오거나, 새로 배포된 소비자
가 이전에 전송된 메시지를 처리할 수 있다.
마지막으로, 카프카는 스트림 처리를 기본으로 제공해왔다. 카프카를 사용해 아파치 플린크
Apache
Flink ...