본문 바로가기

JAVA/kafka

(4)
카프카 이벤트 소싱 이벤스 소싱? 이벤트 소싱은 상태의 변화 하나하나를 이벤트로 취급하여 발생하는 이벤트를 순서대로 기록해두는것이다. 사용자는 기록된 이벤트에서 도메인 객체를 구체화할수 있으며 경위도 확인할수 있다. (DBMS의 트랜잭션 로그(WAL: Write Ahead Log)의 레코드 쓰기) 카프카는 데이터를 모두 추상적인 '로그'로 취급하고, 받은 메시지는 로그에 순차적으로 기록되기 때문에 카프카의 아키텍처 그 자체가 이벤트 소싱에 적합하다. CQRS? Command Query Responsibility Segregation(커맨드 쿼리 책임 분리)란 데이터의 갱신과 문의 처리를 분리하는 개념의 아키텍처이다. 커맨드란 데이터의 update/create/delete 등의 데이터 갱신 처리에 해당. 쿼리란 데이터의 문의..
카프카 웹 활동 분석 웹 활동 분석? 웹사이트를 방문하는 사용자의 행동을 파악하여 마케팅에 활용하기 위한 작업이다. 사용자가 웹에서 클릭하는 활동은 기본적으로 모두 로그에 남으므로 사용자가 웹 사이트의 페이지 사이를 어떤 식으로 이동했는지 파악할수 있다. - 페이지 뷰와 전활율(성공율/구매율) 파악 - 개인화된 권장사항 - 로얄 고랙을 파악하는 고객 클러스터링 - A/B 테스트에 의한 웹사이트 개선 웹사이트 액세스 분석에서는 일정량의 로그 모임을 받아 데이터베이스나 데이터 웨어 하우스에 데이터를 투입하여 BI도구를 사용하거나 액세스 해석 전용 도구나 서비스를 이용해 작업하는 경우가 대부분이다. 사용자의 행동을 실시간으로 파악해 즉시 대응하는 경우 - 상태 업데이트가 시시각가 표시되는 실시간 대시보드 구축 - 실시간 이상 탐지..
카프카로 로그 수집 - 여러 로그의 결과를 모아서 BI도구나 대시보드에서 시각화하고 싶은경우 - 집약한 로그를 이용하여 머신러닝을 구현하고 싶을 경우 - 여러 서버의 로그 내용을 확인하는데 그때마다 각 서버에 들어가 확인하는 경우 애플리케이션이 늘어나면서 외부와의 연계가 증가하면 로그수집을 위한 노력도 증가한다. 로그 수집의 예) 여러 웹 서버군에서 로그를 받는다. 작은 로그를 로그 수집 기반 내에서 집약한다. 집약한 데이터를 Hadoop HDFS에 일정한 간격을 축적한다. 카프카로 로그 수집하기 - 다수의 연계 제품 카프카에는 Producer API가 있어 이를 이용하면 카프카와 접속하는 애플리케이션을 만들수 있다. 처음부터 애플리케이션을 작성하는것이 힘들다면 단순히 서버 로그만 집계하는 경우 Fluentd를 도입하여 F..
카프카로 데이터 허브 데이터 허브란? 여러 곳의 데이터소스가 되는 시스템에서 데이터를 수집하여 여러 시스템에 전달하는 아키텍처 업무 시스템화를 추진하는 조직에는 부서마다 개별 시스템이 있는데, 이러한 개별 시스템은 각각 독립적으로 최적화되어 운영되는 경우가 많다. 이렇게 독립적으로 존재하는 시스템 사이에서는 효율적인 데이터 전달이 필요하다. 데이터 허브 아키텍처란? 데이터 소스가 되는 시스템에서 데이터를 수집하여 해당 데이터를 여러 시스템에 전달하는 아키텍처. 데이터 허브 아키텍처에서는 시스템을 일대일로 연결하는 대신 모든 시스템이 데이터 허브에 데이터를 보내고 데이터 허브에서만 데이터를 받을수 있도록 되어 있다. 이렇게 하면 시스템은 데이터를 데이터 허브에 보내는 것만 생각하면 되고, 데이터를 수신하는 시스템도 데이터허브에..