카프카 (5) 썸네일형 리스트형 6. 카프카 실전 프로젝트 웹 페이지 이벤트 적재 파이프라인 생성웹 페이지 기반 플랫폼 기업은 사용자의 동작으로 발생되는 모든 로그를 안정적으로 수집하기 위해 상당한 노력을 한다.사용자의 특징을 파악하기 위해 사용자가 수행하는 모든 클릭, 스크롤, 입력과 같은 내용을 수집하고, 수집된 사용자 이벤트들은 적절한 형태로 가공되어 광고, 신용도 측정, 이상 동작 감지등으로 사용된다.이러한 이벤트 수집은 서비스에 영향을 미치지 않으면서 안정적으로 유지되어야 하는데 수집을 하기 위해서 사용자에게 영향이 있는다면 고객 경험에 좋지 않은 영향을 미치기 때문이다. 카프카에는 예상치 못한 데이터의 급격한 증가가 발생해도 안정적으로 운영하는데 강점이 있다.이벤트가 많이 발생하더라도 발생한 이벤트들은 모두 카프카의 토픽에 쌓이기 때문에 컨슈머는 자신.. 5. 카프카 상세 개념 토픽과 파티션토픽은 카프카에서 가장 중요한 것이다토픽을 만들면서 카프카가 시작되고 토픽을 삭제하면 데이터가 삭제되고 파이프라인이 중단된다.적정 파티션 개수토픽의 파티션 개수는 카프카의 성능과 관련이 있다. 따라서 토픽을 운영함에 있어 적절한 파티션 개수를 설정하고 운영하는 것이 매우 중요하다.이때 고려해야할 점은 3가지이다.1. 데이터 처리량2. 메시지 키 사용 여부3. 브로커, 컨슈머 영향도 파티션은 카프카의 병렬처리의 핵심이다.파티션의 개수가 많아지면 많아질수록 매핑되는 컨슈머의 개수가 늘어나기 때문이다.따라서 파티션의 개수를 정할 때 해당 토픽에 필요한 데이터 처리량을 측정하는 것이 중요하다. 데이터 처리 속도를 올리는 법 2가지1. 컨슈머의 처리량을 늘리는 것2. 컨슈머를 추가하여 병렬처리량을 늘.. 4. 카프카 스트림즈와 카프카 커넥트 카프카 스트림즈는 토픽에 적제된 데이터를 상태기반 또는 비상태기반으로 실시간 변환하여 다른 토픽에 적재하는 라이브러리이다. - 상태기반: 클라이언트와 서버 간의 상호작용이 계속될 때, 시스템이 이전 상호작용의 상태를 기억하여 이전의 데이터를 메모리에 저장하고, 이를 기반으로 처리한다.시스템이 상태를 기억해야 하기 때문에 복잡도가 증가할 수 있으며, 상태 관리가 필요합니다. 서버는 클라이언트의 상태를 유지하고, 이를 바탕으로 연속적인 요청을 처리한다.이의 장점은 세션이나 사용자 관련 데이터를 계속 유지하기 때문에, 여러 단계의 상호작용이 필요한 경우 유용하다.하지만 상태를 저장하고 관리하기 때문에 메모리 사용량이 많아질 수 있으며, 확장성이 떨어질 수 있다. - 비상태기반: 클라이언트의 요청을 받을 때.. 3. 카프카 기본 개념 설명 카프카 브로커는 데이터를 주고 받기 위해 사용하는 주체이자 데이터를 분산해 문제가 생겨도 안전하게 해주는 애플리케이션이다.프로듀서로 부터 데이터를 전달 받으면 카프카 브로커는 토픽의 파티션에 데이터를 저장하고 컨슈머가 요청할 때 파티션에서 저장된 데이터를 전달한다. 카프카는 저장을 할 때 파일시스템에 저장을 하지만 페이지 캐시를 사용해 입출력 속도를 높였다.하지만 이렇게 하기 위해서 힙 메모리 사이즈를 크게 설정해야한다. 데이터복제데이터 복제는 데이터를 안전하게 사용하기 위해서 사용하는 것으로 파티션 단위로 이뤄진다.복제된 파티션은 리더와 팔로워가 있는데 프로듀서와 컨슈머와 직접 통신하는 것을 리더라고 하고 나머지를 다 팔로워라고 한다.이때 리더가 장애가 발생하면 나머지 팔로워 중에 하나가 리더 지위를 .. 1. 아파치 카프카란? 카프카의 탄생링크드인에서 파편화된 데이터 수집 및 분배 아키텍처를 운영하는데 어려움이 있었다.데이터를 생성하고 적재하기 위해서 데이터를 생성하는 소스 애플리케이션과 데이터가 적재되는 타깃 애플리케이션을 연결해야한다.초기에는 단방향 통신을 통해 연동하는 소스코드를 작성했지만 아키텍처가 거대하고 연결되는 애플리케이션의 수가 증가하면서 문제가 생겼다.이렇게 파편화된 데이터 파이프라인의 복잡도를 낮추기 위해서 아파치 카프카를 만들었고 이는 애플리케이션의 데이터를 한 곳에 모아 중앙집중화적으로 처리하였다.카프카를 중앙에 배치하여 소스와 타깃사이의 의존도를 최소화하여 프로듀서가 애플리케이션에서 생성되는 데이터가 카프카로 넣으면 FIFO방식으로 컨슈머가 데이터를 가져간다. 그리고 카프카는 3대 이상의 서버에서 분산.. 이전 1 다음