카프카의 특징
- 높은 처리량
- http 기반으로 이벤트를 ㄹ전달하지만 응답시간은 한 자리수 밀리초로 처리할 만큼 빠르다.
- 순서 보장
- 이벤트 처리 순서가 보장되므로 엔터티 간의 유효성 검사나 동시 수정 같은 무수한 복잡성들이 제거되어 구조가 간결하다.
- 적어도 한 번 전송 방식
- 이로인해 프토듀서가 같은 데이터를 재손하도 데이터의 변화가 일어나지 않다.
- 전송방식중에 ‘적어도 한 번’이라는 방식이 존재한다. 따라서 이벤트가 중복 발생할 수 있으나 누락 없는 전송이 가능하다.
- 강력한 파티셔닝
- 다른 파티션들과의 의존성 없이 처리가 가능하므로 수평적인 확장이 가능하다.
- 자연스러운 백 프레셔 핸들링
- Pull 방식의 장점은 자기 자신의 속도로 데이터를 처리할 수 있다.
- 단점으로는 Push 방식은 브로커가 보내주는 속도에 의존해야 한다는 한계가 존재한다.
카프카의 장점
- 높은 처리량과 낮은 지연시간
- 응답성만을 기준으로 비교하면 RabitMq보다 성능이 떨어진다.
- 그러나 처리량과 응답성 두 가지 기준으로 비교할 경우 압도적인 성능을 자랑한다.
- 카프카는 처리량이 타 MQ보다 월등한 성능을 자랑한
- 내구성
- ack라는 옵션을 사용해서 메시지의 내구성을 강화할 수 있다.
- 예시로 acks의 옵션을
acks=all
로 부여할 경우 Producer가 생산하는 모든 메시지 사용자가 지정한 안전한 저장소로 저장할 수 있다.
- 결제 파라미터를 안정적으로 저장할 수 있는 새로운 수단이 될 수 있을 것으로 예상한다.
람다 아키텍쳐와 카파 아키텍쳐
- 람다 아키텍쳐란 배치 파이프라인과 실시간 파이프라인을 가지고 있는것을 의미한다.
- 람다 아키텍쳐는 배치와 스트림 처리의 장점을 지닌다.
- 람다 아키텍쳐는 일반적으로 아래와 같은 레이어로 구성되어 있다.
- 배치와 스트림 처리의 아웃풋을 담당하는 서빙 레이어
- 람다 아키텍쳐는 구조의 복잡성, 배치와 스트링이 서로 다르게 요구하는 코드 유지 등의 단점이 존재한다.
- 람다 아키텍쳐의 불편함을 개선하고자 등장한것인 카프카 기반의 카파 아키텍쳐이다.