쿠버네티스 파드 클러스터링으로 실시간 스트리밍 및 캐싱 성능 UP!
by DD
2년 전
조회수 6
쿠버네티스 환경에서 Apache Camel과 헤이즐캐스트를 활용하여 파드 클러스터링을 구현함
실시간 스트리밍 성능 개선을 위해 Apache Camel 기반 MapReduce 아키텍처를 구축함
헤이즐캐스트를 통해 캐시 데이터 공유, 미확인 메시지 기간 50% 감소 달성
쿠버네티스 파드 클러스터링 아키텍처
쿠버네티스는 기본적으로 무상태(Stateless) 아키텍처를 지향하지만, Apache Camel과 헤이즐캐스트를 통해 파드 간 데이터 공유를 구현했다. 구체적으로 Camel-Kubernetes를 활용하여 서비스 디스커버리를 구성하고, 리스(Lease) 객체를 통해 리더 선출 및 Active-Standby 서비스를 구축했다.
헤이즐캐스트를 활용한 캐싱 전략
기존 H2DB 기반의 JPA 캐싱은 파드 간 데이터 공유가 어려웠다. 헤이즐캐스트를 도입하여 파드 간 캐시 데이터 공유를 구현, 심볼리케이팅 소요 시간을 단축했다. 따라서 신규 배포 시에도 기존 캐시 데이터를 유지하여 배포 초기 성능 지연 문제를 해결했다.
Apache Camel 기반 실시간 스트리밍 구현
기존 Dataflow 기반의 실시간 스트리밍은 복잡한 설정과 유지보수 어려움이 있었다. Apache Camel을 활용하여 MapReduce 아키텍처를 구현, 실시간 통계 계산을 가능하게 했다. 결과적으로 미확인 메시지 수 감소 및 메시지 처리량 증대를 달성했다.