웹(Web)/데브옵스(DevOps)

카프카 토픽 생성 시 고려할 점

SK_MOUSE 2024. 12. 8. 18:37
반응형

본 글은 아래 도서 저자인 유튜버 데브원영님의 영상을 참고/gpt-4o내용을 기반으로 하여 작성하였습니다.

 

아파치 카프카 애플리케이션 프로그래밍 WITH 자바 - 웹/네트워크 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

필자는 현재 운영중인 서비스에서 신규 토픽을 생성하고 컨슈머/프로듀서에서 데이터를 사용하는 새로운 업무를 적용해야 했다.

아파치카프카 from ChatGPT 생성이미지

운영 환경에서 토픽 생성 시 확인부분

- 토픽을 생성하는 것 자체는 기운영중인 서비스에서, 다른 토픽에 영향을 주지 않는다.

- 토픽 생성한다고 하여 카프카를 재기동 할 필요도 없다.

- 토픽 제거는 기 운영중인 서비스에서 지양한다고 한다. 아래 옵션이 true여야 제거가 가능하다.

# etc/kafka/server.properties파일
delete.topic.enable = true

 

카프카 토픽 생성 시 고려할 점

  1. Replication 수 : 6개 이상의 브로커인 환경에서는 2개의 replicaiton이 권장
    - 추가로, ack 옵션은 Follower 파티션에 잘 데이터가 복제됐는지 체크(단, 속도가 현저히 느림)
    partition;1, replication:2인 예시
  2. Partition 수 : 사용할 컨슈머 그룹에 맞춰서 적용하며, 파티션의 개수를 줄일수는 없으니 신중하게 선택 해야한다.

각 파티션-컨슈머에 매치하여 병렬 처리 하기 위해서는 Consumer수<Partition수

 

 

토픽 데이터를 사용할때 컨슈머 간 충돌 고려

다른 컨슈머 그룹에서 데이터 읽는데에 영향을 미치지않는다.

그룹별/토픽별로 Offset을 나누어 저장함.

 

하나의 토픽으로 들어온 데이터는 각자 컨슈머 그룹별로 중복 처리 될 수 있음.

데브원영 카프카: https://www.youtube.com/watch?v=rBVCvv9skT4&list=PL3Re5Ri5rZmkY46j6WcJXQYRlDRZSUQ1j&index=6

 

 

 

아파치 카프카 애플리케이션 프로그래밍 WITH 자바 - 웹/네트워크 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

반응형