본문 바로가기
Programming/하루 일기

카프카 스트림즈를 왜 사용했을까?

by peter paak 2022. 2. 17.
728x90

현재 다니는 회사에서는 카프카 스트림즈를 사용하고 있다.
사실 마이크로서비스도 아니고 서비스 몇개만 분산시킨 환경인데 왜 굳이 카프카 스트림을 사용하고 있는지 궁금했다

 

CTO에게 왜 카프카를 사용하는지 물어봤었다
초기에 사용할 때는 변환엔진이 cpu로 돌아가 시간이 오래 걸렸고 (5 ~ 10초)
http로는 처리하기 힘들어 카프카를 사용했다고 한다
아마 커넥션이 5 ~ 10초 이상 물리면 문제가 될 수 있기 때문인 것 같다

gpu를 도입하면서 gpu 또한 계속 띄우고 있을 수는 없어서 카프카를 계속 유지하는 것 같다

 

추가로 설명한 장점은 다음과 같다

  • 이벤트가 독립적으로 실행되니 트랜잭션 걱정이 필요없다
  • 예외처리가 편하다
  • 시간이 오래걸리거나 작업이 많은 경우 완전 분리된 실행흐름을 처리할 수 있다
  • 기존에 알던 기술이다

하지만 단점은 다음과 같다

  • 구축
  • 서버 비용 (기본 브로커 3개 이상)
  • 디버깅 힘듦
  • 이벤트간 실행 순서 정하기 힘들다
  • 테스트하기 까다로움

 

추가적으로 언급한 내용은 좀 더 큰 서비스에 맞는거 같다는 의견이다
아직 우리 서비스가 작기 때문에 RabbitMQ같은 이벤트 브로커를 사용했으면 어떨까 하는게 의견이었다

 

여기서 말하는 대부분의 내용은 카프카 클라이언트로 가능할 것 같은데 왜 서비스에서는 스트림즈를 굳이 사용했을까
카프카 토픽에 남은 변환모델에 대용량 스트림 처리가 필요했던 것일까?
내일 한번 물어봐야겠다

 


카프카 스트림즈를 사용하는 이유는 딱히 없던 것으로 보인다

스프링에서 카프카에 대한 호환성이 처음 설정시에 좋지 않았던 것으로 보인다

 

728x90