| spring.kafka.bootstrap-servers |
localhost:9092 |
Kafka 브로커의 호스트:포트. Producer와 Consumer가 처음 연결할 주소를 지정 |
| spring.kafka.producer.key-serializer |
StringSerializer |
메시지 Key를 직렬화할 클래스. 여기선 String → byte[]로 변환 |
| spring.kafka.producer.value-serializer |
IntegerSerializer |
메시지 Value를 직렬화할 클래스. Integer → byte[]로 변환 |
| spring.kafka.producer.acks |
all |
프로듀서가 “성공 응답”으로 간주할 조건: – all은 ISR 내 모든 복제본에 쓰여야 성공 (가장 안전, 응답시간 길어짐) |
| spring.kafka.producer.retries |
1 |
전송 실패 시 재시도 횟수. 네트워크·브로커 오류가 났을 때 최대 1회 재시도 |
| spring.kafka.producer.batch-size |
16384 |
한 배치에 모을 메시지 최대 크기(Bytes). 이 크기만큼 모이거나 linger.ms 시간이 지나면 한 번에 전송 |
| spring.kafka.producer.linger-ms |
5 |
메시지를 배치로 묶기 전 대기 시간(ms). 짧게 설정할수록 지연이 줄지만 배치 효율은 떨어짐 |
| spring.kafka.consumer.group-id |
compute-group |
Consumer가 속할 그룹 ID. 같은 그룹 내 컨슈머들끼리 파티션을 분담 처리 |
| spring.kafka.consumer.auto-offset-reset |
earliest |
소비할 오프셋이 없을 때 어떻게 시작할지:– earliest: 가장 처음부터 읽기– latest: 새 메시지부터 읽기 |
| spring.kafka.consumer.key-deserializer |
StringDeserializer |
브로커에서 받은 Key 바이트를 String으로 역직렬화할 클래스 |
| spring.kafka.consumer.value-deserializer |
IntegerDeserializer |
브로커에서 받은 Value 바이트를 Integer로 역직렬화할 클래스 |
| spring.kafka.listener.poll-timeout |
3s |
@KafkaListener가 메시지를 가져올 때 poll() 호출의 최대 대기 시간(초).이 시간만큼 새 레코드 대기 시도 |
| spring.kafka.listener.concurrency |
4 |
@KafkaListener당 생성할 스레드(컨슈머) 수. 병렬 소비 인스턴스를 늘려 처리량을 높임 |
| spring.kafka.listener.missing-topics-fatal |
false |
설정된 토픽이 브로커에 없을 때 애플리케이션 기동 실패 여부:– false: 토픽이 없어도 계속 실행– true: 에러 발생 |