Pink Spider/Apache Kafka 사용 시 발생할 수 있는 주요 오류

Created Wed, 26 Mar 2025 13:30:03 +0900 Modified Mon, 08 Dec 2025 08:41:47 +0900
696 Words 3 min

Apache Kafka 사용 시 발생할 수 있는 주요 오류 유형과 그 해결 방법을 정리해 보겠습니다.


1. 네트워크 및 연결 오류

❌ 오류: Connection to broker <broker_id> failed

📌 원인: 브로커와의 네트워크 연결 문제, 브로커 다운, 방화벽 문제 등
해결 방법:

  • zookeeperbroker가 실행 중인지 확인 (ps aux | grep kafka)
  • listenersadvertised.listeners 설정 확인 (server.properties)
  • 방화벽 설정 (iptables -L, firewalld)을 점검하여 포트가 열려 있는지 확인

2. 브로커 및 토픽 관련 오류

❌ 오류: Leader not available for partition <partition_id>

📌 원인:

  • 브로커가 다운되거나 리더 선출이 되지 않음
  • ISR (In-Sync Replica) 부족
    해결 방법:
  • 브로커 상태 확인 (kafka-topics.sh --describe --bootstrap-server <broker>).
  • ISR이 낮다면 min.insync.replicas 값을 낮추거나 브로커를 재시작.
  • replication.factor가 1이면 가용성이 떨어지므로 2 이상으로 설정.

❌ 오류: Unknown topic or partition

📌 원인:

  • 토픽이 존재하지 않음
    해결 방법:
  • 토픽 목록 확인 (kafka-topics.sh --list --bootstrap-server <broker>)
  • 토픽이 없으면 새로 생성 (kafka-topics.sh --create ...)
  • 자동 토픽 생성을 허용하려면 auto.create.topics.enable=true 설정

3. 프로듀서 관련 오류

❌ 오류: TimeoutException: Expiring <num> record(s) due to timeout

📌 원인:

  • 브로커 응답이 지연됨
  • 네트워크 지연 또는 브로커 장애
    해결 방법:
  • request.timeout.ms 값을 늘리기
  • acks=all 설정을 줄이고 acks=1로 변경하여 빠른 응답 확보
  • 브로커 상태 및 네트워크 점검

❌ 오류: RecordTooLargeException

📌 원인:

  • 메시지 크기가 message.max.bytes 설정을 초과함
    해결 방법:
  • 브로커에서 message.max.bytes 값을 증가
  • 프로듀서에서 max.request.size 값을 증가

4. 컨슈머 관련 오류

❌ 오류: OffsetOutOfRangeException

📌 원인:

  • 컨슈머가 요청한 오프셋이 브로커에 없음
    해결 방법:
  • 컨슈머 그룹 리셋 (auto.offset.reset=earliest 또는 latest)
  • 수동으로 오프셋 조정 (kafka-consumer-groups.sh --reset-offsets ...)

❌ 오류: Rebalance in progress

📌 원인:

  • 컨슈머 그룹의 멤버가 변동되어 리밸런싱이 자주 발생
    해결 방법:
  • 컨슈머 수 줄이기 또는 session.timeout.ms 값 증가
  • partition.assignment.strategy를 안정적인 방식으로 변경

Kafka 사용 시 위와 같은 오류가 자주 발생할 수 있으니, 로그를 잘 확인하면서 적절한 설정을 적용하면 해결할 수 있습니다! 🚀