아파치 카프카-애플리케이션 프로그래밍 with 자바 썸네일형 리스트형 4장 카프카 상세 개념 설명(2) 4-4) 스프링 카프카 스프링 카프카 : 카프카를 스프링 프레임워크에서 효과적으로 사용할 수 있도록 만들어진 라이브러리를 의미함 4-4-1) 스프링 카프카 프로듀서 카프카 템플릿 클래스를 통해서 데이터를 전송할 수 있음. [카프카 템플릿을 사용하는 방법] 1) 기본 카프카 템플릿을 사용하는 방법 [application.yaml] spring: kafka: producer: bootstrap-servers: my-kafka:9092 acks: all @SpringBootApplication public class DefaultKafkaProducer implements CommandLineRunner { private static String TOPIC_NAME = "test"; @Autowired pri.. 더보기 4장 카프카 상세 개념 설명 4-1) 토픽과 파티션 카프카에서 토픽은 가장 중요한 역할이며 토픽의 파티션 개수는 카프카의 성능과 관련이 많음 4-1-1)적정 파티션 개수 - 고려사항 : 데이터 처리량, 메시지 키 사용 여부, 브로커 & 컨슈머 영향도 1. 데이터 처리량 파티션 : 카프카 병렬처리의 핵심, 파티션-컨슈머 1:1 매핑임 => 그러므로 파티션 개수를 정할때 해당 토픽에 필요한 데이터 처리량을 측정하여 정하는게 중요함. 데이터 처리 속도를 올리는 방법 1) 컨슈머 처리량을 늘리는 방법 - 컨슈머 서버의 사양을 늘리거나 GC 튜닝 등을 활용할 수 있으나 컨슈머 특성상 다른 시스템(=오라클, 하둡..)과 연동하여 데이터 처리함으로 한계 존재 2) 파티션 개수 늘리는 방법 - 가장 확실한 방법임 프로듀서가 보내는 데이터양보다 파.. 더보기 3장 카프카 기본 개념 설명 3-1) 카프카 브로커, 클러스터, 주키퍼 브로커 : 클라이언트와 데이터를 주고받는 주체, 데이터 분산 저장으로 장애 발생에 대한 대응이 가능하도록 도와주는 애플리케이션 (한 클러스터(=렉)에 3대 이상의 브로커로 운영하길 권장함 - 클러스터로 묶인 브로커끼린 데이터 분산 저장 및 복제하는 역할) 프로듀서 -> 브로커 -> 컨슈머 관계로 데이터를 주고받는다. 프로듀서 : 데이터 전송 브로커 : 요청받은 토픽의 파티션에 데이터 저장 및 컨슈머가 데이터 요청하는 경우 데이터 전달 컨슈머 : 데이터 요청 config/server.properties의 log.dir 옵션에 정의된 디렉토리에 데이터를 저장함 카프카는 별도 db나 캐시 메모리를 사용하지 않고 파일 시스템에 데이터를 저장하기 때문에 파일 입출력으로 .. 더보기 이전 1 다음