Kafka를 자세히 공부해보자
Kafka란? Apache Kafka는 실시간으로 스트리밍 데이터를 수집하고 처리하는 데 최적화된 분산 데이터 스토어이다. 스트리밍 데이터는 수천 개의 데이터 원본에서 연속적으로 생성되는 데이터로 보통 데이터 레코드를 동시에 전송하는데, 스트리밍 플랫폼은 이러한 지속적인 데이터 유입을 처리하고 데이터를 순차적이고 점진적으로 처리해야 한다.
Cool developers never die
Kafka란? Apache Kafka는 실시간으로 스트리밍 데이터를 수집하고 처리하는 데 최적화된 분산 데이터 스토어이다. 스트리밍 데이터는 수천 개의 데이터 원본에서 연속적으로 생성되는 데이터로 보통 데이터 레코드를 동시에 전송하는데, 스트리밍 플랫폼은 이러한 지속적인 데이터 유입을 처리하고 데이터를 순차적이고 점진적으로 처리해야 한다.
드디어 MSA를 구현하기 위해 모놀리식으로 작성하던 프로젝트를 나누는 작업을 시작했다. 우선 도메인별로 기능을 묶을라 했는데 코드가 하도 꼬여 있어서 그냥 프로젝트를 새로 파기로 결심했다. 기존 모놀리식 프로젝트 안녕… 새로 [member / product / order / API gateway] eureka client / eureka server 이렇게 나누고, db를 세 개의 마이크로 서비스에 따라 각자 파기로 했다. 레디스는 별다른 분리 없이 하나의 레디스를 사용한다.
Google STMP를 이용하여 구현하였다.
프로젝트의 명세에 따라 주문서의 상태에 따라 스케줄링이 필요했다. MySQL에서 스케줄링은 특정 간격을 주기로 감시하는 방법 특정 시각 + 특정 주기에 변경되도록 스케줄링하는 방법
해당 프로젝트는 MSA를 접목한 예약구매 서비스이고, 이 프로젝트의 도메인은 e-commerce이다. 따라서 사용자는 특정 상품을 구매하기로 결정한다면, 결제 시작 → 결제 중 → 결제 완료 → 주문서 작성 → 주문 완료 → 배송 시작 → 배송 중 → 배송 완료(구매 확정) 이라는 단계를 거치게 된다. 이 중 주문서 작성 ~ 배송 완료 단계를 기획하였다.