GDSC SungShin Women's University 23-24/Study

[자율스터디] 아파치 카프카 스터디 팀 5월 보고서

GDSC SungShin Team 2024. 8. 5. 21:45

5월 아파치 카프카 스터디 팀에서는 카프카 클러스터 운영, 카프카 프로듀서 애플리케이션 개발, 카프카 컨슈머 애플리케이션 개발에 대한 강의를 듣고 실습을 진행하였습니다.

카프카 스터디에서는 아래의 강의를 수강한 후 진행하였습니다.

 

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!

데브원영 DVWY | 실전 환경에서 사용하는 아파치 카프카 애플리케이션 프로그래밍 지식들을 모았습니다! 데이터 파이프라인을 구축하는데 핵심이 되는 아파치 카프카의 각종 기능들을 살펴보고

www.inflearn.com

 

 

카프카 클러스터 운영

5주차에서는 카프카 클러스터 운영하는 방법을 배웠다.

카프카 클러스터는 서버를 직접 구매하여 운영하는 온프레미스, 클라우드 서비스를 통해 컴퓨팅 리소스를 발급받는 IaaS, 클라우드 서비스 제공업체를 통해 소프트웨어와 인프라를 관리하며 플랫폼을 제공 받는 SaaS 방법에 대해 각각의 장점과 단점을 살펴볼 수 있었다.

 

특히나 가장 운영이 용이한 SaaS에 대해 구체적으로 강의를 진행하여 SaaS형 아파치 카프카의 장점과 단점에 대해서 더 자세히 알아볼 수 있었다.

 

또한 해당 주차에서는 카프카 커맨드 라인 툴에 대해 살펴보고 로컬 환경에서 카프카 브로커를 실행하여 실습을 진행하였다.

 

카프카 프로듀서

5주차에서는 또한 카프카 프로듀서에 대해 공부하였다.

프로듀서는 카프카에서 데이터가 시작되는 부분이라고도 볼 수 있기 때문에 중요하다.

위 그림은 프로듀서 애플리케이셔의 내부구조인데, 여기서 프로듀서 레코드는 우리가 보낼 데이터를 정의하는 레코드의 의미를 말한다.

프로듀서 애플리케이션에서 메세지는 Partitioner, Accumulator, Sender의 과정을 거치게되는 것을 볼수있다.

 

해당 주차에서는 또한 프로듀서 API에 있는 파티셔너 UniformStickyPartitioner와 RoundRobinPartitioner에 대해 알아보았고, 이를 메세지 키가 있을 때와 없을 때로 구분지어 자세하게 설명하였다.

 

그 외에도 프로듀서에서 설정해야하는 필수 옵션과 선택 옵션 각각의 주요 옵션들을 살펴보았고 그 중 프로듀서가 전송한 데이터가 브로커들에 정상적으로 저장되었는지 전송 성공 여부를 확인하는데 사용하는 옵션인 acks 옵션의 값에 따라 데이터의 움직임을 상세하게 공부하였다.

 

카프카 컨슈머

카프카 클러스터 토픽에 데이터가 들어오면 이 토픽을 사용하는 용도로 활용하는 것이 컨슈머라고 한다.

컨슈머는 예를 들어 토픽으로부터 데이터를 가져와 SMS 등의 다른 서비스와 연동을 하여 문자 발송 처리를 하게하는 역할을 할 수 있기 때문에 아파치 카프카 사용시 잘 이해하고 사용할 수 있어야한다.

컨슈머를 운영하려면 먼저 토픽을 만들어야하고, 그 토픽에 데이터를 넣어야지만 컨슈머 애플리케이션에서 사용할 수 있게 된다.

 

특히나 해당 주차에서는 컨슈머 그룹에 대해서 자세히 공부하였는데, 컨슈머 그룹이란 특정 토픽에 대해서 목적에 따라 데이터를 처리하는 컨슈머들을 묶을 그룹을 말한다. 따라 각 컨슈머 그룹으로부터 격리된 상황에서 안전하게 운영을 할 수 있다.

이에 따라 발생할 수 있는 주요한 상황인 리밸런싱과 커밋, 어사이너에 대해서 배우고 컨슈머의 주요옵션또한 정리하였다.


5주차는 아파치 카프카 운영에 있어 중요한 프로듀서, 컨슈머에 대해 어떻게 작동하고 내부에서 데이터가 흐르는지에 대해 공부하였다.