Apache Kafka 사용기
안녕하십니까. 이번 포스팅에서는 제가 사용하였던 아파치 카프카 에 대하여 간략하게 리뷰하려고 합니다. Apache Kafka 아파치 카프카란? 아파치 카프카란 오픈소스 기반 확장 가능한 분산 스트리밍 플랫폼 입니다. 이에 대하여 각각 살펴봅시다. 아래에서의 모든 예시는 광고 노출 데이터로 가정하겠습니다. 확장 가능 분산 수평 확장이 가능하다는 말은 kafka에 트래픽이 몰리면 이를 위해 클러스터에 리소스를 더 투입할 수 있다는 말입니다. 스트리밍 pub sub 구조 스트리밍이라는 말은 데이터가 흐름과 같이 오면 이를 받아서 처리한다는 것과 비슷합니다. 예를 들어서 자료구조의 Queue를 생각하시면 편합니다. 이와 같은 구조를 펍 섭 구조라고 합니다. 데이터를 계속 넣어주는 부분을 publish 이라고 합니다. 이를 받아서 처리하는 부분을 subscribe 라고 합니다. pub sub은 디자인 패턴 중 하나로써 중간 플랫폼을 카프카가 담당을 하게되고, pub sub 부분은 개발자가 직접 디자인 해야 합니다. Producer : 카프카에 데이터를 넣어주는 역할을 합니다. 예를 들어서 광고 노출이 직접 노출되는 클라이언트 코드에서 노출 데이터를 Producing하여 카프카에 전송 합니다. Consumer : 카프카에 있는 데이터를 받아서 처리하는 역할을 합니다. 예를 들어서 광고 노출 데이터를 받아서 과금을 하는 등의 처리를 할 수 있습니다. Partition Group Topic 카프카의 이해를 쉽게하기 위해서 다음과 같이 도식화 하였습니다. 카프카의 파티션 도식화 Message : 카프카 데이터의 가장 작은 단위 입니다. 예를 들어서 광고 노출 데이터라고 할 시에 노출 데이터 한건으로 볼 수 있습니다. Topic : 데이터의 그룹 중 가장 큰 단위 입니다. 예를 들어서 광고 노출 Topic으로 볼 수 있습니다. Partition : 토픽을 나누는 단위 입니다. 예를 들어서 광고 노출 토픽을 파티션 ...