일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Axon framework
- 기술공부
- JPA스터디
- 프로그래머스
- Flutter
- JPA 공부
- Kafka
- 코테준비
- DDD
- nestjs
- 스프링부트
- 플러터 공부
- 스프링 공부
- K8S
- JPA공부
- JPA예제
- nestjs공부
- nestjs스터디
- 코테공부
- 알고리즘공부
- 카프카
- 스프링부트공부
- querydsl
- 기술면접공부
- 자료구조공부
- 자바공부
- 스프링공부
- JPA
- 스프링
- 플러터 개발
- Today
- Total
목록카프카 (13)
DevBoi
데이터의 저장 카프카를 실행할때 Config/server.properties 의 log.dir 옵션에 정의한 디렉토리에 데이터를 저장한다. 토픽 이름과 파티션 번호의 조합으로 하위 디렉토리를 생성하여 데이터를 저장한다. -hello.kafaka 토픽의 0번 파티션에 존재하는 데이터를 확인 할 수 있다. log에는 메시지와 메타데이터를 저장한다. index는 메시지의 오프셋을 인덱싱한 정보를 담은 파일이다. timeindex파일에는 메시지에 포함된 타임스탬프 값을 기준으로 인덱싱한 정보가 담겨있다. 만약에 3개짜리 파티션을 만들게 되면, 해당 토픽이 3개로 저장된다.(나눠서가 아닌 복제형태로) 프로듀서는 메시지 (레코드)를 보내게 되는데 이 레코드 안에는 타임스탬프,메시지키,메시지 값 들의 정보가 들어가있..
카프카가 왜 데이터 파이프라인으로 활용하게 되는지 살펴보자 1. 높은 처리량 카프카는 프로듀서가 브로커로 데이터를 보낼때와 컨슈머가 브로커로부터 데이터를 받을때 모두 묶어서 전송한다. 많은 양의 데이터를 송수신할 때 맺어지는 네트워크 비용은 무시할 수없다. 동일한 양의 데이터를 보낼때 네트워크 통신 횟수를 최소한으로 줄인다면, 동일 시간 내에 더 많은 데이터 를 전송할 수 있다. 또한 파티션 단위를 통해 동일 목적의 데이터를 여러 파티션에 분배하고, 데이터를 병렬 처리할 수 있다. 파티션 개수만큼 컨슈머 개수를 늘려서 동일 시간당 데이터 처리량을 늘리는 것이다. 최소한의 네트워크 비용으로 최대한의 데이터 전송이 가능하다는 것이 결론이다. 파티션은 최소 1개이상, N개까지 가능하다. 컨슈머 개수를 한개 늘..
링크드인에서 만들었다. 데이터를 생성하는 소스애플리케이션과 데이터가 최종 적재되는 타깃애플리케이션을 연결해야할때 사용한다. 소스 애플리케이션의 타깃애플리케이션의 개수가 점점 많아지면서 문제가 생겼다. 내부데이터 흐름을 개선하기 위해 한곳에 모아서 처리를 하는 방식이 가장 큰 특징이다. 카프카는 토픽이라는 개념을 바탕으로, 프로듀서와 컨슈머로 나눠지면 해당 파티션으로 전송이 된다. 프로듀서는 특정 데이터에 대해서 보내게 되면, 파티션 중 하나의 데이터가 저장되고 그 파티션의 내부구조는 큐 형태로 동일하게 구현이 되어있다. 파티션마다 다르게 큐에 담겨서 데이터가 컨슈머에게 전달이 되게 된다. (순차적으로) 큐에 데이터를 보내는 것이 프로듀서고 큐에서 데이터를 가져가는 것이 컨슈머 이다. 또한 컨슈머는 큐에 ..