카프카의 설정 파일에서 주요 설정 항목은 무엇인가요?
_____A1: 카프카 설정 파일(server.properties, producer.properties, consumer.properties 등)에서 자주 설정하는 주요 항목은 다음과 같습니다.
---
1. 브로커 관련 설정 (server.properties)
- `broker.id`: 클러스터 내에서 각 브로커를 구별하는 고유 ID입니다.
- `listeners`: 브로커가 클라이언트 요청을 수신할 네트워크 주소와 포트입니다 (예: PLAINTEXT://localhost:9092).
- `log.dirs`: 메시지 로그가 저장되는 디스크 경로입니다.
- `num.network.threads`: 네트워크 요청 처리에 사용하는 스레드 수입니다.
- `num.io.threads`: 디스크 I/O 작업에 사용하는 스레드 수입니다.
- `log.retention.hours`: 로그 파일을 보관할 시간(기본 168시간, 7일)입니다.
- `log.segment.bytes`: 개별 로그 세그먼트 파일 최대 크기입니다.
- `zookeeper.connect`: Zookeeper 서비스 주소 및 포트입니다. Kafka 클러스터 관리용으로 사용됩니다.
---
2. 프로듀서 설정 (producer.properties)
- `bootstrap.servers`: 초기 연결할 Kafka 브로커 주소 목록입니다.
- `acks`: 메시지 전송에 대한 확인 응답 수준 설정 (0, 1, all).
- `key.serializer` / `value.serializer`: 메시지 키와 값의 직렬화 클래스 지정입니다.
- `retries`: 전송 실패 시 재시도 횟수입니다.
- `batch.size`: 한 번에 전송할 메시지 배치 크기(바이트)입니다.
- `compression.type`: 메시지 압축 타입 (none, gzip, snappy, lz4 등)입니다.
---
3. 컨슈머 설정 (consumer.properties)
- `bootstrap.servers`: 초기 연결할 Kafka 브로커 주소 목록입니다.
- `group.id`: 컨슈머 그룹 ID입니다.
- `key.deserializer` / `value.deserializer`: 메시지 키와 값의 역직렬화 클래스 지정입니다.
- `auto.offset.reset`: 오프셋 초기 위치 설정 (earliest, latest, none).
- `enable.auto.commit`: 자동으로 오프셋을 커밋할지 여부입니다.
- `auto.commit.interval.ms`: 자동 커밋 주기입니다.
- `max.poll.records`: 한 번 폴링 시 가져올 메시지 최대 개수입니다.
---
4. 공통 및 기타 중요 설정
- `log.cleanup.policy`: 로그 세그먼트의 정리 정책 (delete, compact).
- `message.max.bytes`: 메시지 최대 크기입니다.
- `replication.factor`: 토픽 생성 시 파티션 복제 수입니다 (토픽 생성 시 설정).
---
이상은 카프카 설정 파일에서 가장 많이 활용되는 주요 항목들이며, 사용 목적에 따라 더 많은 세부 설정이 존재합니다. 필요 시 공식 문서나 설정 파일 내 주석을 참고하는 것이 좋습니다.
Kafka의 설정 파일은 주로 `server.properties` 파일로 구성되며, 이 파일에서 설정할 수 있는 주요 항목들은 다음과 같습니다.
1. Broker 설정 - broker.id : 각 Kafka 브로커를 식별하는 고유한 ID입니다.
클러스터 내에서 각 브로커는 서로 다른 ID를 가져야 합니다.
- listeners : 브로커가 수신할 네트워크 인터페이스와 포트를 정의합니다.
예를 들어, `PLAINTEXT://:9092`는 모든 IP에서 9092 포트를 통해 연결을 수신합니다.
- log.dirs : Kafka가 로그 파일을 저장할 디렉토리 경로입니다.
여러 디렉토리를 지정할 수 있으며, 이는 데이터의 분산 저장 및 성능 향상에 도움이 됩니다.
2. Topic 설정 - num.partitions : 기본적으로 생성되는 토픽의 파티션 수를 정의합니다.
파티션 수는 데이터의 병렬 처리 및 확장성에 영향을 미칩니다.
- default.replication.factor : 새로 생성된 토픽의 기본 복제 계수를 설정합니다.
이 값은 데이터의 내구성과 가용성에 영향을 미칩니다.
3. 성능 및 리소스 설정 - message.max.bytes : 브로커가 수신할 수 있는 최대 메시지 크기를 설정합니다.
기본값은 1MB이며, 이 값을 초과하는 메시지는 거부됩니다.
- replica.fetch.max.bytes : 복제된 파티션에서 브로커가 가져올 수 있는 최대 바이트 수를 설정합니다.
이 설정은 복제 성능에 영향을 미칩니다.
- num.network.threads : 네트워크 요청을 처리하는 스레드 수를 설정합니다.
이 값을 조정하여 동시 연결 수를 최적화할 수 있습니다.
4. 안정성 및 내구성 설정 - min.insync.replicas : 메시지가 커밋되기 위해 필요한 최소 인스턴스 복제 수를 설정합니다.
이 값은 데이터 손실을 방지하는 데 중요한 역할을 합니다.
- unclean.leader.election.enable : 이 설정이 `true`로 설정되면, ISR(인-싱크 복제본) 목록에 없는 브로커가 리더로 선출될 수 있습니다.
이는 데이터 손실의 위험을 증가시킬 수 있습니다.
5. 보안 설정 - security.inter.broker.protocol : 브로커 간의 통신에 사용할 보안 프로토콜을 설정합니다.
예를 들어, SSL 또는 SASL을 사용할 수 있습니다.
- sasl.enabled.mechanisms : SASL 인증에 사용할 메커니즘을 정의합니다.
예를 들어, `PLAIN`, `SCRAM-SHA-256` 등이 있습니다.
6. 기타 설정 - auto.create.topics.enable : 이 설정이 `true`로 설정되면, 존재하지 않는 토픽에 대한 메시지를 전송할 때 자동으로 토픽이 생성됩니다.
- log.retention.hours : 로그 파일이 보관되는 시간을 설정합니다.
이 값이 초과되면 오래된 로그가 삭제됩니다.
이 외에도 Kafka의 설정 파일에는 다양한 설정 항목이 있으며, 각 항목은 Kafka의 동작 방식에 큰 영향을 미칩니다.
따라서, 클러스터의 요구 사항에 맞게 적절한 설정을 선택하고 조정하는 것이 중요합니다.
Kafka의 성능과 안정성을 극대화하기 위해서는 이러한 설정을 잘 이해하고 활용하는 것이 필요합니다.
작성자:
김유리 [비회원]
| 작성일자: 1년 전
2024-11-22 08:11:57
조회수: 173 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 173 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.