전체 글
-
[카프카 핵심 가이드] CH6. 카프카 내부 메커니즘 - 물리적 저장소Study/카프카 핵심 가이드 2025. 3. 8. 00:04
6.5 물리적 저장소카프카의 기본 저장 단위는 '파티션 레플리카'하나의 파티션은 서로 다른 브로커들 사이에 분리될 수 없고, 같은 브로커의 서로 다른 디스크에 분할 저장될 수 없음따라서 파티션의 크기는 특정 마운트 지점에 사용 가능한 공간의 제한을 받음카프카를 설정할 때 운영자가 파티션들이 저장될 디렉토리 목록을 정의함log.dirs 매개변수에 지정카프카가 사용할 각 마운트 지점별로 하나의 디렉토리를 포함하도록 설정하는 것이 일반적 추가) log.dirs더보기log.dirs카프카는 모든 메시지를 로그 세그먼트(log segment) 단위로 묶어 log.dir 설정에 지정된 디스크 디렉토리에 저장함다수의 디렉토리를 지정하고자 할 때, log.dirs 사용하는 것이 좋음 (log.dirs가 설정되어 있지 않..
-
[Quarkus] SmallRye Kafka ConnectorWork 2025. 3. 5. 21:56
개요Quarkus Kafka Connector > Incoming Channel의 failure, commit 전략 이해하기 내용주의) 아래는 Kafka Consumer의 동작이 아닌 Quakurs Kafka Connector의 동작이다. 커밋 방식default : 수동 커밋enable.auto.commit=false Q. 메시지 처리 중 예외가 발생했을 때 어떻게 동작할까?메시지가 정상적으로 처리되었는지는 메시지의 ack/nack으로 구분함 (acknowledgement/not acknowledgement)예외가 발생했을 때 메시지는 nack됨failure-strategy 설정에 따라 동작함fail어플리케이션 중단시켜 메시지가 더이상 처리되지 못함 (컨슈머 종료)예외가 발생한 메시지의 오프셋을 커밋하지..
-
[컴퓨터 밑바닥의 비밀] 2.7 블로킹과 논블로킹Study/컴퓨터 밑바닥의 비밀 2025. 3. 2. 16:11
들어가기 전에동기, 비동기를 이야기할 때 항상 두 가지 대상을 언급한다.프로그래밍에서는 서로 상호 작용하는 모듈 두 개 또는 함수를 의미한다. 1) 동기A와 B 두 대상이 강하게 결합된 것을 의미함위와 같이 작업 A가 작업 B에 의존하는 경우 A와 B는 동기 2) 비동기A와 B가 강한 결합과 같은 제약 없이 각자 자신의 작업을 독립적으로 실행할 수 있는 경우 A와 B는 비동기 더보기동기 방식정의작업이 순차적으로 실행되는 것한 작업이 시작되면 해당 작업이 완료될 때까지 다른 작업은 기다려야 한다.장점간단하고 직관적임단점작업의 완료를 기다려야 하므로 처리 성능에 영향을 줄 수 있음한 작업이 지연되면 다른 작업에도 영향을 줌비동기 방식정의작업이 독립적으로 실행되는 것작업의 완료 여부를 기다리지 않고 다른 작업..
-
[컴퓨터 밑바닥의 비밀] 2.3 스레드 안전 코드Study/컴퓨터 밑바닥의 비밀 2025. 3. 1. 23:27
2.3.1 자유와 제약스레드 안전을 달성하는 2가지 조건전용 리소스를 사용하는 스레드는 스레드 안전을 달성할 수 있다.함수의 지역 변수, 스레드 전용 저장소 등공유 리소스를 사용하는 스레드는 다른 스레드에 영향을 주지 않도록 하는 대기 제약 조건에 맞게 공유 리소스를 사용하면 스레드 안정을 달성할 수 있다. 2.3.2 스레드 안전이란 무엇일까?코드가 스레드 몇 개에서 호출되든 이 스레드들이 어떤 순서로 호출되든 간에 상관없이 올바른 결과가 나온다면, 이 코드를 '스레드 안전'이라고 말함스레드의 전용 리소스와 공유 리소스에 어떤 것들이 있는지 파악해야 함 2.3.3 스레드 전용 리소스와 공유 리소스스레드 전용 리소스함수의 지역 변수, 스레드의 스택 영역, 스레드 전용 저장소스레드 공유 리소스 (전용 리소스..