https://product.kyobobook.co.kr/detail/S000001932756
실시간으로 스트리밍 데이터를 게시, 구독, 저장 및 처리할 수 있는 '분산형 데이터 스트리밍 플랫폼'
1.높은 처리량과 낮은 latency
2.이벤트 처리 순서 보장으로 유효성 검사와 같은 복잡성 제거
3.적어도 한 번 전송 방식
멱등성(동일한 작업을 여러번 수행하더라도 결과가 달라지지 않는 성질을 말함)
중복처리가 가능하고 복잡한 트랜젝션 처리가 불필요함
4.높은 확장성(강력한 파티셔닝)
기업의 비즈니스 확장에 따라 데이터 파이프라인을 손쉽게 확장 가능함
5.고가용성(고장나지 않음)
리플리케이션 기능 추가 이후 고가용성을 갖추게 됨
6.개발 편의성
프로듀서와 컨슈머가 서로 완벽히 분리되어 독립적으로 개발 가능
카프카 커넥트,스키마 레지스트리와 같은 개발 편의성에 도움을 주는 기능 제공
주키퍼
카프카의 메타데이터 관리 및 브로커의 정상상태 점검을 담당하는 애플리케이션
최근엔 주키퍼 의존성을 많이 줄이려고 하는 추세
브로커
카프카 애플리케이션이 설치된 서버 또는 노드
프로듀서
카프카로 메세지를 보내는 역할하는 클라이언트
컨슈머
카프카에서 메세지를 꺼내가는 역할하는 클라이언트
토픽
메세지 피드들을 토픽으로 구분하고
파티션
하나의 토픽이 한번에 처리할 수 있는 한계를 높이기 위해 토픽 하나를 여러개로 나눠 병렬 처리가 가능하게 만든 것
세그먼트
브로커의 로컬 디스크에 저장되는 파일
프로듀서에 의해 브로커로 전송된 메세지는 토픽의 파티션에 저장되며, 각 메세지들을 세그먼트라는 로그파일의 형태로 브로커의 로컬디스크에 저장됨.
메세지
프로듀서가 브로커로 전송하거나 컨슈머가 읽어가는 데이터 조각을 말함
분산시스템
-카프카는 확장이 용이하다는 장점을 지님.
-최초 구성한 클러스터의 리소스가 한계치에 도달해 더욱 높은 메세지 처리량이 필요한 경우, 브로커를 추가하는 방식으로 수평적 확장 가능
페이지 캐시
-페이지 캐시는 직접 디스크에 읽고 쓰는 대신 물리 메모리 중 애플리케이션이 사용하지 않는 일부 잔여 메모리를 활용하기 때문에 디스크 I/O가 줄어들어 성능을 높일 수 있음
배치 전송 처리
-단건 전송보다 효율적인 배치 전송 처리를하여 네트워크 오버헤드를 줄이는 것 뿐만 아니라 장기적으로는 더욱 빠르고 효율적으로 처리할 수 있음
압축 전송
-압축 전송을 통해 네트워크 대역폭이나 회선 비용 등을 줄일 수 있음
토픽,파티션,오프셋
-카프카는 토픽이라는 곳에 데이터를 저장함
-토픽은 병렬처리를 위해 여러개의 파티션이라는 단위로 다시 나뉨
-파티션의 메세지가 저장되는 위치를 오프셋이라고 부름
-오프셋을 통해 메세지의 순서를 보장하고 컨슈머에서는 마지막까지 읽은 위치를 알 수 있음
고가용성 보장
-리플리케이션 기능 제공을 통한 고가용성 보장
-리플리케이션에 각각 리더,팔로워 역할을 부여함
-리더는 프로듀서,컨슈머로부터 오는 모든 읽기/쓰기 요청을 처리
-팔로워는 리더를 복제함
-리더와 팔로워 사이의 통신을 최소화하기 위한 방법으로 리더의 부하를 최소화 하는 방법 채택