현재 프로젝트에서 아키텍처로 MSA를 적용하여 개발하다보니, 카프카를 볼 일이 상당히 많다.
MSA구조의 특성상 타파트 Table에 변경되는 내용을 비동기식으로 처리해야하는 상황이 많은데, 그때 쓰이는 것이 카프카이다.
하지만 내가 개발하는 부분은 카프카로 데이터를 Entity에 맵핑해서 테이블에 저장하는 부분만 개발하지 전반적인 설계는 아키텍처팀에서 담당한다.
(그래도 개발하다보면 여러 상황때문에 알고싶지 않아도 구조를 알아야 개발이 가능하긴하다)
지난 몇개월 카프카를 사용해보며 MSA구조와 Miss-communication의 정수를 몸소 겪을 수 있었다.
MSA라는 아키텍처는 단순 아키텍처가 아니라 이전까지 개발했던 방법론과 프로세스를 완전히 바꿔야 구현 가능한 것이기에 그 과도기에서 오는 시행착오인 것 같다.
이전의 모놀리식 구조라면 내가 필요한 데이터가 어느 테이블 컬럼인지만 확인하고 가져오면 될텐데 MSA에서는 그것이 불가능하다.
타 마이크로서비스에 오너십을 가지고있는 데이터라면 크게 2가지 방식으로 데이터를 받아올 수 있다.
1. API (어플리케이션 프로그래밍 인터페이스)
2. 비동기 Pub/Sub
카프카는 2번 방식에서 사용되는 메시징 시스템이다.
데이터가 CRUD되는 시점에 데이터 자체를 타 파트로 보내주는 방식이다.
앞으로 카프카에 대해 정리해보고 그 구조에 대해 블로그에 정리해보려한다.
http://www.yes24.com/Product/Goods/59789254
카프카, 데이터 플랫폼의 최강자 - YES24
데이터 플랫폼의 핵심 컴포넌트로 각광받고 있는, 이벤트 기반 비동기 아키텍처를 위한 고가용성 실시간 분산 스트리밍 솔루션 카프카(Kafka)의 모든 것!국내 최대 모바일 플랫폼 회사인 카카오
www.yes24.com
http://www.yes24.com/Product/Goods/99122569
아파치 카프카 애플리케이션 프로그래밍 with 자바 - YES24
아파치 카프카 애플리케이션 개발을 위한 「실전 가이드」아파치 카프카란 무엇일까? 카프카 애플리케이션은 어떻게 만들까? 데이터 파이프라인을 만들기 위해 어떤 카프카 라이브러리를 사용
www.yes24.com
카프카에 대한 내용은 주로 위 2권의 책을 참고해서 정리할 것이며, 중간중간 웹서핑을 통해 내용을 추가할 예정이다.
댓글