토픽 설정
현재 토픽의 설정을 확인하고 수정할 수 있어요. 각 토픽 설정들은 기본적으로 기본값을 가지고 있으며 토픽 별로 재정의 할 수 있어요.

토글을 활성화하면 각 토픽 설정 별로 자세한 설명을 볼 수 있어요. 해당 설명을 참고하여 토픽 설정을 수정해보세요.

기본 설정
토픽을 구성하는 기본적인 설정값이에요. 토픽 이름 을 변경하려면 토픽 삭제 후 재생성해야 해요.

자주 쓰는 설정
일반적으로 토픽을 생성할 때 사용하는 설정들만 모았어요.

| 섹션 | 설정 이름 | 설정값 | 기본값 |
|---|---|---|---|
| 복제 | insync 할 최소 복제본 개수 | min.insync.replicas | 1 |
| 디스크 | 디스크 정리 정책 | cleanup.policy | 'delete', 'compact', 'delete,compact(복합 정책)' |
| 디스크 | 최대 데이터 보관 시간 | retention.ms | 604800000 ms (7일) |
| 메시지 | 최대 메시지 크기 (바이트) | max.message.bytes | 1048588 bytes (1MB) |
| 세그먼트 | 세그먼트 시간 | segment.ms | 604800000 ms (1주) |
토픽 설정을 변경하였을 때 토픽의 크기가 어떻게 변할지 쉽게 파악할 수 있도록 예상되는 토픽 크기 계산 도구를 제공해드려요. 이를 통해 토픽 설정을 변경하였을 때 어떤 영향을 미칠지 미리 확인할 수 있어요.
고급 설정
복제
복제 섹션 에서는 토픽의 복제 관련 설정을 확인하고 수정할 수 있어요. 복제 설정은 데이터 손실을 방지하고 데이터의 안정성을 보장하는 데 중요한 역할을 해요.
| 설정 이름 | 설정값 | 기본값 |
|---|---|---|
| insync 할 최소 복제본 개수 | min.insync.replicas | 1 |
| 복제 쓰로틀링 (리더 측) | leader.replication.throttled.replicas | "" ([partitionId]:[brokerId],...) |
| 복제 쓰로틀링 (팔로워 측) | follower.replication.throttled.replicas | "" ([partitionId]:[brokerId],...) |
디스크
디스크 섹션 은 카프카에서 로그 데이터의 보존 및 삭제 방법을 관리하는 설정들을 포함하고 있어요. 이 섹션의 설정은 카프카의 스토리지 사용을 최적화하고, 오래된 데이터를 효율적으로 처리하는 데 중요해요.
| 설정 이름 | 설정값 | 기본값 (옵션 및 단위) |
|---|---|---|
| 디스크 정리 정책 | cleanup.policy | 'delete', 'compact', 'delete,compact(복합 정책)' |
| 최대 데이터 보관 (바이트) | retention.bytes | -1 (제한없음) |
| 최대 데이터 보관 시간 | retention.ms | 604800000 ms (7일) |
디스크 정리 정책: compact 옵션
디스크 섹션 > 디스크 정리 정책 설정에서 'compact(압축)' 옵션을 선택했을 때 적용되는 추가 설정들은 로그 세그먼트의 압축 작업과 관련된 세부 행동을 제어해요. 메시지 압축 이란 키-값 쌍의 데이터를 가진 메시지에서 중복된 키의 메시지들을 제거하고, 각 키의 최신 메시지만을 유지하는 방식으로 디스크 공간을 효율적으로 사용하도록 해요. 이는 특히 상태 정보를 저 장하는 애플리케이션 (사용자 세션, 이벤트 작업 진행 상태 등) 에서 유용하며, 데이터의 효율적인 보관과 조회 성능 향상에 기여하게 돼요.
| 설정 이름 | 설정값 | 기본값 |
|---|---|---|
| 삭제 표시기 마커를 유지하는 시간 | delete.retention.ms | 86400000 ms (24시간) |
| 압축 전, 부적합한 메시지 보관 최대 시간 | max.compaction.lag.ms | 9223372036854775807 ms (약 292년) |
| 압축 전, 부적합한 메시지 보관 최소 시간 | min.compaction.lag.ms | 0 ms |
| 클리닝 주기 | min.cleanable.dirty.ratio | 0.5 (50%) |
메시지
메시지 섹션 은 메시지의 처리와 관련된 세부 설정을 포함하고 있어요.
| 설정 이름 | 설정값 | 기본값 |
|---|---|---|
| 최대 메시지 크기 (바이트) | max.message.bytes | 1048588 bytes (1MB) |
| 메시지 형식 버전 | message.format.version | 카프카 클러스터 버전과 동일 |
| 메시지 타임 스탬프 유형 | message.timestamp.type | 'CreateTime', 'LogAppendTime' |
| 타임 스탬프 최대 시간 간격 | message.timestamp.difference.max.ms | 9223372036854775807 ms (약 292년) |
| 메시지의 하향 변환 활성화 여부 | message.downconversion.enable | true, false |
| 압축 형태 | compression.type | 'uncompressed', 'zstd', 'lz4', 'snappy', 'gzip', 'producer' |
플러쉬
플러쉬 설정 은 메시지가 디스크에 얼마나 자주 쓰여질지를 결정하는 설정이에요.
| 설정 이름 | 설정값 | 기본값 |
|---|---|---|
| 플러쉬 메시지 간격 | flush.messages | 9223372036854775807 ms (약 292년) |
| 메시지 플러쉬 시간 간격 | flush.ms | 9223372036854775807 ms (약 292년) |
플러쉬는 메시지가 디스크에 쓰여지는 것을 의미해요. 카프카는 메시지를 메모리에 먼저 쓰고, 일정 시간이나 메시지의 개수가 쌓이면 디스크에 메시지를 써요.
세그먼트
세그먼트 섹션 은 카프카의 데이터 저장 방식과 밀접하게 관련된 설정들을 다뤄요. 카프카는 데이터를 로그 세그먼트라는 파일 단위로 저장하며, 이 세그먼트들은 토픽의 파티션을 구성해요. 세그먼트 설정을 통해 카프카의 저장 효율성, 데이터 접근 속도, 그리고 시스템의 전반적인 성능을 조정할 수 있어요. 이 섹션에서는 세그먼트의 생성, 롤링, 삭제, 인덱싱과 같은 중요한 설정들을 포함해요.
| 설정 이름 | 설정값 | 기본값 |
|---|---|---|
| 최대 랜덤 지터 | segment.jitter.ms | 0 ms |
| 세그먼트 파일 크기 | segment.bytes | 1073741824 bytes (1.07GB) |
| 세그먼트 시간 | segment.ms | 604800000 ms (1주) |
| 세그먼트 인덱스 | segment.index.bytes | 10485760 bytes (10.49MB) |
| 파일 삭제 시간 | file.delete.delay.ms | 60000 ms (1분) |
| 새 세그먼트 사전 할당 | preallocate | true, false |
나머지
| 설정 이름 | 설정값 | 기본값 |
|---|---|---|
| 리더 선택 방식 | unclean.leader.election.enable | true, false |
| 오프셋 간격 | index.interval.bytes | 4096 bytes (4KB) |