일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- consumer
- mirror maker2
- mysql
- bean
- spring kafka
- ECS
- git
- Kubernetes
- JPA
- K8s
- topic생성
- spring
- Spring Data JPA
- CI
- PAGING
- API
- transactionaleventlistener
- Streams
- kafka
- producer
- Kotlin
- Entity
- centos7
- offsetdatetime
- cd
- QueryDSL
- entity graph
- CodePipeline
- Spring JPA
- AWS
- Today
- Total
목록전체 글 (100)
Yebali

카프카 프로듀서 프로듀서는 카프카에서 데이터를 저장하는 첫 단계이다. 프로듀서에는 데이터 유실을 막기 위한 다양한 옵션이 존재한다. acks 옵션 이 옵션을 통해 프로듀서가 전송한 데이터가 카프카 클러스터에 얼마나 신뢰성 높게 저장할지 지정할 수 있다. (아래 예시에서는 복제수가 2 이상인 경우에 대한 동작) acks = 0 프로듀서가 리더 파티션으로 데이터를 전송했을 때, 리더 파티션으로 데이터가 저장되었는지 확인하지 않는다. 저장 여부에 대한 응답을 받지 않기 때문에 데이터가 몇 번째 오프셋에 저장되었는지 확인할 수 없다. 저장 여부를 알 수 없기 때문에 재시도를 하지 않는다. acks = 1 리더 파티션에만 정상적으로 적재되었는지 확인한다. 정상적으로 적재되지 않는 경우 재시도할 수 있다. 팔로워 ..

미러메이커2 카프카 미러메이커2는 서로 다른 두 개의 카프카 클러스터 간에 토픽을 복제하는 애플리케이션이다. '프로듀서 + 컨슈머'를 사용하여 직접 미러링 할 수 있지만, 토픽의 모든 것(메시지 키, 메시지 값, 동일한 파티션에 레코드 넣기 등)을 동일하게 복제하기는 어렵다. 커넥터로 사용할 수 있도록 설계되었기 때문에, 커넥트를 운영중이라면 미러메이커2 커넥터를 실행하여 토픽을 복제 할 수 있다. 미러메이커1..? 레거시 버전의 미러메이커이다. 복제 전 후의 파티션 정보가 달라짐, 정확히 한번 전달(exactly once delivery)를 보장하지 못하는 등의 단점이 많다. 미러메이커2를 사용하면 카프카 클러스터 단위의 활용도를 높일 수 있다. 액티브-스탠바이 클러스터 운영 복구용으로 임시 카프카 클..

토픽과 파티션 적정 파티션 개수 토픽 생성 시, 파티션의 개수를 정하는데 고려해야할 점. 데이터 처리량 메시지 키 사용 여부 브로커, 컨슈머 영향도 파티션은 카프카의 병렬 처리의 핵심이다. 파티션의 개수가 많아질수록 1:1 매핑되는 컨슈머 개수가 늘어나기 때문이다. 데이터 처리 속도를 올리는 두가지 방법 컨슈머의 처리량을 늘리는 것. 컨슈머를 추가해서 병렬처리량을 늘리는 것. 컨슈머 특성 상 다른 시스템들(S3, 하둡 등)과 연동되기 때문에 일정 수준 이상 컨슈머의 처리량을 늘리는 것은 어렵다. 반면 파티션의 개수를 늘리고 파티션 수 만큼 컨슈머를 추가하는 방법은 데이터 처리량을 늘리는 가장 확실한 방법이다. 프로듀서 전송 데이터량 < 컨슈머의 데이터 처리량 x 파티션 개수 단, 파티션의 개수를 늘리게 ..

ISR(In-Sync-Replica) ISR은 리더 파티션과 팔로워 파티션이 모두 싱크가 된 상태를 뜻한다. ISR이라는 용어가 나온 이유는 팔로워 파티션이 리더 파티션으로부터 데이터를 복제하는데 시간이 걸리기 때문이다. 리더 파티션에서 데이터가 적재된 후, 팔로워 파티션이 복제하는 시간차 때문에 리더 파티션과 팔로워 파티션 간에 오프셋 차이가 발생한다. 이런 차이를 모니터링하기 위해 리터 파티션은 일정한 주기(replica.lag.time.max.ms)를 가지고 팔로워 파티션의 데이터 복제를 확인한다. 주기보다 더 긴 시간동안 데이터를 가져가지 않으면 팔로워 파티션에 문제가 생긴 것으로 판단하고 ISR그룹에서 제외한다. ISR로 묶였을 때, 팔로워 파티션은 리더 파티션으로 선출될 자격을 가진다. 데이터..

토픽 정리 정책 토픽의 데이터는 시간/용량에따라 삭제 규칙을 적용할 수 있다. (삭제하지 않는 것도 가능) 토픽 삭제 정책 토픽을 운영하면 토픽의 cleanup.policy를 delete로 설정한다. 이 옵션은 명시적으로 토픽의 데이터를 삭제하는 것을 뜻한다. 토픽의 데이터를 삭제할 때는 세그먼트 단위로 삭제한다. 세그먼트란 토픽의 데이터를 저장하는 명시적인 파일 시스템 단위를 말하며, 액티브 세그먼트란 데이터를 저장하기 위해 사용중인 세그먼트를 말한다. 삭제 정책이 실행되는 시점은 시간 또는 용량이 기준이 된다. 토픽 압축 정책 여기서 압축이란 메시지 키별로 해당 메시지 키의 레코드 중 오래된 데이터를 삭제하는 정책. 토픽 압축 정책은 카프카 스트림즈의 KTable과 같이 메시지 키를 기반으로 데이터를..

카프카 커넥트란? 카프카 오픈소스에 포함된 툴 중 하나로 데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 애플리케이션이다. 특정한 작업 형태를 템플릿으로 만들어놓은 커넥터를 실행하면, 프로듀서/컨슈머 애플리케이션 개발/배포/운영 작업의 반복을 줄일 수 있다. 커넥터는 각 커넥터가 가진 고유한 설정값을 받아서 데이터를 처리한다. (ex, 파일의 데이터를 토픽으로 보내는 커넥터는 파일이존재하는 디렉토리 위치, 파일 이름을 설정해야 한다.) 커넥터의 종류 소스 커넥터 : 데이터를 토픽으로 가지고 오는 프로듀서 역할을 하는 커넥터 싱크 커넥터 : 데이터를 다른 애플리케이션으로 보내는 컨슈머 역할을 하는 커넥터 Mysql → Kafka / Kafka → Mysql 할 때, JDBC 커넥..