kafka ui가 정상 작동하지 않는 문제 발생
zookeeper log는 아래와 같음
[main-SendThread(zookeeper:2181)] WARN org.apache.zookeeper.ClientCnxn - Session 0x0 for sever zookeeper:2181, Closing socket connection. Attempting reconnect except it is a SessionExpiredException.
java.lang.IllegalArgumentException: Unable to canonicalize address zookeeper:2181 because it's not resolvable
zookeeper 컨테이너 진입 > log폴더 > version-2 삭제해서 해결함.
rm -rf version-2/ 명령어를 사용해 ZooKeeper의 version-2 디렉토리를 삭제하고 나서 Kafka UI가 정상적으로 작동하기 시작했다면, 이는 version-2 디렉토리 내의 데이터가 문제를 일으키고 있었을 가능성이 큽니다. 이 디렉토리는 일반적으로 ZooKeeper의 데이터를 저장하는 곳으로, 여기에는 다음과 같은 중요한 데이터가 포함됩니다:
Transaction Log: ZooKeeper는 클라이언트 요청을 처리하는 모든 변경사항을 트랜잭션 로그로 기록합니다. 이 로그는 시스템의 복구와 일관성 유지에 중요한 역할을 합니다.
Snapshot Files: ZooKeeper는 주기적으로 전체 데이터 트리의 스냅샷을 생성합니다. 이 스냅샷은 트랜잭션 로그와 함께 ZooKeeper 서비스의 상태를 복원하는 데 사용됩니다.
version-2 디렉토리를 삭제함으로써 문제가 해결되었다면, 다음과 같은 상황들이 있었을 수 있습니다:
손상된 데이터: 트랜잭션 로그나 스냅샷 파일이 손상되어 ZooKeeper 서버가 정상적으로 동작하지 못하는 경우가 있습니다. 이러한 손상은 디스크 오류, 부적절한 종료, 버그 등 다양한 원인으로 발생할 수 있습니다.
스토리지 공간 부족: 디스크 공간이 부족하면 ZooKeeper 서버가 새로운 트랜잭션을 저장하지 못하고 Kafka 클러스터의 정상적인 작동에 영향을 줄 수 있습니다.
ZooKeeper 서버의 부하: 오래된 또는 과도한 양의 트랜잭션 로그와 스냅샷 파일은 ZooKeeper 서버의 부하를 증가시키고 성능 저하를 일으킬 수 있습니다.
그러나, 이 방법은 임시적인 해결책에 불과할 수 있으며, 더 근본적인 문제의 원인을 파악하고 해결하는 것이 중요합니다. 예를 들어, 정기적으로 로그를 정리하거나, 디스크 공간을 확보하는 등의 조치를 취할 수 있습니다. 또한, ZooKeeper의 로그와 스냅샷 파일을 안전하게 관리하고 주기적으로 백업하는 것도 중요합니다.