BackEnd/kafka
-
03. 토픽(Topic)과 파티션(Partition)BackEnd/kafka 2021. 11. 2. 04:31
1. 적정 파티션 개수 토픽의 파티션 개수는 카프카의 성능과 관련이 있습니다. 그렇기 때문에 토픽을 운영함에 있어 적절한 파티션 개수를 설정하고 운영하는 것이 중요합니다. 토픽 생성 시 파티션 개수 고려사항으로 데이터 처리량, 메시지 키 사용 여부 및 브로커, 컨슈머 영향도가 있습니다. 1) 데이터 처리량 데이터 처리 속도를 올리는 방법은 컨슈머의 처리량을 늘리는 것(서버의 사양을 올리는 스케일 업 또는 GC 튜닝 등)과 컨슈머를 추가해서 병렬처리량을 늘리는 것입니다. 파티션 개수는 프로듀서가 보내는 데이터양과 컨슈머의 데이터 처리량을 계산해서 정하면 됩니다. 프로듀서 전송 데이터량 < 컨슈머 데이터 처리량 X 파티션 개수 파티션 개수만큼 컨슈머 스레드를 운영한다면 해당 토픽의 병렬처리를 극대화할 수 있..
-
02. 카프카 아키텍처(Kafka Architecture)BackEnd/kafka 2021. 10. 30. 18:00
주키퍼(Zookeeper) 주키퍼는 카프카의 메타데이터를 관리하는 데 사용됩니다. 카프카 브로커에 대한 정보를 확인할 수 있습니다(어떤 보안 규칙으로 통신하는지, jmx port 상태 정보, host 정보 등). 또한 컨트롤러 역할을 하는 브로커 및 저장된 토픽들을 확인할 수 있습니다. 주키퍼 쉘 명령어를 통해 사용할 수 있는 내부 명령어들에 대한 설명은 주키퍼 공식 문서 홈페이지에서 확인할 수 있습니다. 브로커(Broker) 카프카 브로커는 카프카 서버라고도 하며 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체이자, 데이터를 분산 저장하여 장애가 발생하더라도 안전하게 사용할 수 있도록 도와주는 애플리케이션입니다. 하나의 서버에는 한 개의 카프카 브로커 프로세스가 실행됩니다. 데이터를 안전하게 ..
-
01. 카프카(Kafka)BackEnd/kafka 2021. 10. 30. 17:00
들어가기 전 용어를 간략히 정의하면, 데이터 파이프라인이란 데이터를 추출(extracting)하고 변경(transforming), 적재(loading)하는 과정을 묶은 것입니다. 클러스터란 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합이며 카프카의 브로커란 카프카의 서버입니다. 데이터를 생성하고 적재하기 위해서는 데이터를 생성하는 소스 애플리케이션과 데이터가 최종 적재되는 타깃 애플리케이션을 연결해야 합니다. end to end 연결 방식의 아키텍처는 데이터를 전송하는 라인이 기하급수적으로 복잡해지며 확장이 어렵습니다. 또한 1:1 매칭의 데이터 파이프라인은 커플링으로 인해 한쪽의 이슈가 다른 쪽 애플리케이션에 영향을 미칩니다. 이를 해결하기 위해 링크드인 데이터팀에서 만든 것..