inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Orders Microservice와 Catalogs Microservice에 Kafka Topic의 적용

비즈니스 로직을 카프카로 동기화하는 장/단점이 궁금합니다.

667

겨울낙타

작성한 질문수 1

0

안녕하세요, 수업 잘 듣고 있습니다!

질문 : 주문을 함으로써 제품 수량이 감소한다는 것은 비즈니스 로직(요구사항)으로 볼 수 있을 것 같습니다. 도메인 주도 패턴에서는 주문 정보를 생성함과 동시에 제품 재고 정보가 같이 업데이트 되는 것이 하나의 트랜잭션에 묶일 것 같습니다.

이번 카프카 데이터 동기화에서는 이러한 부분을 트랜잭션에 묶지 않고 별도로 후속 동기화 처리를 하는 부분을 설명해주셨습니다.

MSA에서는 제품(카탈로그) 서비스 조직과 주문 서비스 조직이 분리되어 있다는 전제 하에 주문을 했다는 것을 알려주고 재고 관리는 제품 서비스 조직에게 일임하는 것인가요?

주문 서비스 팀은 주문을 했다는 사실을 메시지 큐 토픽에 전달함으로써 로직을 마치고, 이후 제품 서비스나 그 외 다른 서비스 팀이 해당 정보를 가지고 재고 관리 등 후처리를 하는 형태인 것인가요?

모노리틱 환경에서만 작업을 해봐서, 데이터를 처리하는 트랜잭션 부분에 대해서 ACID나 BASE라는 용어를 이해는 해도 이를 실무에 적용하는 부분에 대해 애매한 경계선이 있는 것 같습니다.

다시 질문:

1. 트랜잭션으로 묶는 기준이 있을까요?

2. REST로 제품 서비스를 업데이트 하는 로직을 직접 수행하는 것은 바람직하지 않을까요?

3. 데이터 동기화는 향후 제품 서비스 외 확장을 고려하는 것이 목적인가요?

질문이 길어졌는데 읽어주셔서 감사합니다!

kafka 데이터동기화 spring-cloud spring-boot architecture JPA msa Kafka

답변 2

1

겨울낙타

뒤 강의를 더 들어보니 분산 DB를 동기화 하기 위함이군요.

MSA는 예전과 같은 모노리틱의 트랜잭션 하나로 요구사항 이벤트 하나를 묶을 수는 없군요.

1. 트랜잭션의 경우, 서비스 별로 DB를 관리할 경우 Feign Client의 라운드 로빈 방식으로 묶일 수 없고...

2. REST로 (Feign Client로) 호출하지 못하는 것도 위와 마찬가지네요.

3. 확장도 확장이지만 당장 분산 DB 사이의 동기화가 목적이군요.

셀프로 답을 달았지만 잘못되었거나, 조금 더 보충할 수 있는 답변을 주신다면 큰 도움이 될 것 같습니다.

감사합니다.

0

blue-sky

저도 비슷한 생각을 하고 있었는데 검색해보니

트랜잭션 관련하여 후속강의를 준비하고 있다고 합니다.

https://www.inflearn.com/questions/198798

빨리 후속 강의가 나오길 기다려야겠네요.

kafka 업데이트 강의 듣고 시포요

0

104

2

강의 교안

0

95

2

마이크로서비스간 통신 시, 인증 처리

0

102

2

api gateway 에서 인증 처리

0

70

1

섹션 19 질문드립니다

0

72

2

강의 자료 업데이트

0

96

2

부하분산 강의 섹션

0

62

1

강의자료는 어디에서?

0

95

2

강의 자료는 어디서 다운 받을 수 있나요?

0

125

2

전체 사용자 조회시 오류

0

63

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

117

2

학습 방향

0

101

2

카프카 커넥터 사용 목적 문의

0

89

2

kafka 강의

0

115

2

서비스 디스커버리 종류

0

90

2

강의 자료에 대해서 궁금해요

0

123

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

91

2

Kafka Source Connect 버전 에러

0

93

2

소스커넥터는 사용안한 거 맞죠?

0

84

2

강의자료 업데이트 문의

0

98

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

63

1

강의 업데이트 계획이 궁금합니다.

0

117

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

167

2

어떤 것이 업데이트 된 건가요?

0

168

2