작성
·
68
0
강의를 들으면
카프카 커넥트와 카프카 컨슈머는 사실상 같은 동작을 하는데 왜 두 가지가 있나? 에 대해 고민하면서 의문이 든 점들을 여쭤볼려고 합니다.
카프카 커넥트를 사용하는 경우에는 "반복적인 파이프라인을 만들어야할 경우 분산모드 커넥트를 설치하고 운영"을 강조하셨습니다. 여기서 말하는 의미가 데이터 전처리 없이 바로 DB와 같은 외부에 데이터를 넘기는 경우를 말씀하시는 걸까요??
그럼 카프카 컨슈머는 데이터 전처리가 필요할 때 사용하는 것일까요??
전처리가 필요하고 단발적인 처리가 아닐 경우에는 consumer application을 파티션 갯수만큼 띄워서 데이터 처리량을 높이는게 맞는 걸까요??
---------------------------------------
그리고 마지막으로 "카프카 기술별 아키텍처 적용 방법 정리" 를 생각하지 말고
동일한 구현을 커넥트와 컨슈머 각각 구현한다면 커넥트가 조금 더 빠른 성능을 보이는걸까요??
제가 아직 많이 부족해서 이해가 잘안되는 부분 질문드립니다!! 답변해주시면 정말 감사드리겠습니다!!
답변 2
1
안녕하세요~
카프카 싱크 커넥터는 컨슈머의 구현체이므로 결과적으로 비슷한 동작을 하는 것은 맞습니다. 하지만, 분명 다른점이 있습니다. 아래는 그 예시입니다.
카프카 싱크 커넥터는 commit을 직접 수행할 수 없음
컨슈머는 commit을 직접 수행할 수 있고 다양한 commit 옵션이 있음
컨슈머는 리밸런스 리스너를 등록할 수 있음
카프카 커넥트는 stateless 처리만 가능
카프카 커넥트는 분산 프로세스로 운영되고 내부 스레드로 여러개의 싱크 커넥터를 실행할 수 있음
많은 DB업체에서는 카프카와 DB연동을 위한 커스텀 커넥터를 오픈소스로 제공하고 있음
위와 같은 사유로 인해, 카프카와 DATABASE와 연동시 카프카 커넥트를 사용하는 것이 좋고 일반적으로 많이 사용되는 방식이라고 말씀드릴 수 있습니다. 일반적으로 우리가 데이터베이스와 연동하는 사용 형태를 보면 테이블이 1개만 끝나는게 아니라 10개 100개 이상으로 늘어날 수 있고 해당 동작은 유사할 수 있습니다. 이런 경우 매번 컨슈머 애플리케이션을 배포하는 것이 아니라 카프카 커넥트를 사용하여 파이프라인을 반복적으로 만들면 더욱 유지보수가 편리하게 될 수 있습니다.
반면, 컨슈머를 개발해야할 때도 있겠습니다. 컨슈머는 내부적으로 다양한 커밋 타이밍을 처리할 수 있고 리밸런스 리스너를 통해 stateful처리를 할 때 유용하게 활용할 수 있습니다. 이러한 동작은 커넥트에서는 구현할 수 없습니다. 그러므로 이런 특징이 필요할때는 불가피하게 컨슈머를 개발해야할 것 입니다.
결과적으로, 단발적인 배포+stateful처리+ 커밋타이밍 조절 등의 특징이 있을 경우에는 컨슈머를 개발하시고 / 반복적인 배포+stateless처리+database와 연동 등의 특징이 있을 때는 커넥트를 구성하여 운용하시는 것이 좋겠습니다.
카프카 커넥트를 활용한 개발 사례에 대해서 아래 링크를 확인해보시면 더욱 이해하시기 좋을것 같습니다.
1
안녕하세요, 인프런 AI 인턴입니다.
박현민님, 카프카 컨슈머와 카프카 커넥트의 차이를 설명드리겠습니다.
카프카 컨슈머는 각각의 애플리케이션에서 직접 데이터를 가져와 처리하는 방식입니다. 일반적으로 데이터 전처리, 분석 등 특정 작업을 수행해야 할 때 사용됩니다. 컨슈머를 이용하면 데이터 처리를 더 상세하고 맞춤화할 수 있습니다.
반면, 카프카 커넥트는 데이터 소스와 싱크 간에 반복적인 데이터 파이프라인을 설정하는 데 유용합니다. 연결만 설정하면 데이터를 외부 시스템으로 전달하거나 받는 작업을 자동으로 수행합니다. “반복적인 파이프라인”은 주로 대량의 데이터를 자동으로 전송하고 받을 때 유용합니다. 그러므로, 데이터 전처리가 필요 없는 경우에는 카프카 커넥트를 사용하여 외부 시스템과 데이터를 쉽게 교환할 수 있습니다.
데이터 전처리가 필요하고 지속적인 처리가 필요할 때는 컨슈머 애플리케이션을 파티션 수만큼 늘려 병렬로 활용하여 처리 성능을 높이는 것이 일반적입니다. 이를 통해 더욱 많은 양의 데이터를 효과적으로 처리할 수 있습니다.
커넥트와 컨슈머를 비교할 때, 커넥트가 항상 더 빠른 성능을 제공하는 것은 아닙니다. 성능은 시스템 구성 및 사용 사례에 따라 달라질 수 있습니다. 커넥트는 설정이 쉽고 반복 작업에 유리하지만, 복잡한 전처리가 필요하다면 컨슈머를 사용하는 것이 더 적합할 수 있습니다.
더 궁금한 사항이 있으시면 언제든지 질문해 주세요!
카프카 컨슈머 관련문서
카프카 커넥트 관련문서