MSA - 각 마이크로 서비스마다 별도의 DB사용 질문
414
작성한 질문수 15
#질문 배경#
user-service , catalog-service , order-service 까지 실습을 하고 확인해보니 아래 사진들과 같이 각 서비스마다 다른 DB를 사용하는 것을 알게되었습니다.
마이크로 서비스들을 공통적으로 yml 파일에다 DB명을
msauser 라고 명명해 헷갈렸지만 말이죠.


#질문#:
강의내용을 들어보고 생각해봤는데 실제로 마이크로 서비스를 배포할때 mysql같은 RDB를 각 마이크로 서비스들(3개라고 가정)이 사용한다고 가정하면 각 마이크로 서비스들이 사용할 DB 3개를 만들어줘야 한다고 이해하고 있습니다. 맞나요?
(+ 다른 DB지만 메시징큐로 각 서비스들끼리 통신)
그런데 시스템에 DB의 양이 적다면 DB 1개만 만들고 각 마이크로 서비스들이 하나의 DB를 접근하게 구현하기도 하나요?
답변 1
1
안녕하세요, 이도원입니다.
MSA 애플리케이션을 구축하실 때, 데이터베이스 관리를 어떻게 할지, 동기화를 어떻게 할지 등을 설계하게 됩니다. MSA 라고해서 모든 서비스별로 데이터베이스를 분리하여 사용할 필요는 없습니다. 다만, 데이터베이스를 분리하게 되면 서비스간의 종속성을 줄일 수 있기 때문에, 유지보수 및 확장성도 가져갈 수 있다고 생각됩니다. 말씀하신 것처럼 3가지 서비스별로 DB를 구축하기에 필요한 리소스가 적다면, 하나의 DB를 설계하여, 스키마를 잘 분리하거나, 서비스 간에 필요한 데이터를 사용하신다면, 오히려, MSA를 통해 다른 서비스의 데이터를 사용하는데 필요한 Network 발생을 줄일수도 있다고 생각됩니다. 구축하려는 서비스의 환경이나 서비스 특성에 따라서 DB를 분리하거나 공통 된 DB를 사용하실 수 있습니다.
추가 질문있으시면 다시 글 남겨 주세요.
감사합니다.
kafka 업데이트 강의 듣고 시포요
0
85
1
강의 교안
0
75
1
마이크로서비스간 통신 시, 인증 처리
0
79
1
api gateway 에서 인증 처리
0
66
1
섹션 19 질문드립니다
0
54
1
강의 자료 업데이트
0
84
1
부하분산 강의 섹션
0
57
1
강의자료는 어디에서?
0
72
1
강의 자료는 어디서 다운 받을 수 있나요?
0
110
1
전체 사용자 조회시 오류
0
59
1
혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??
0
113
2
학습 방향
0
96
2
카프카 커넥터 사용 목적 문의
0
86
2
kafka 강의
0
109
2
서비스 디스커버리 종류
0
87
2
강의 자료에 대해서 궁금해요
0
117
2
GlobalFilter, LoggingFilter가 동작하지 않습니다.
0
90
2
Kafka Source Connect 버전 에러
0
85
2
소스커넥터는 사용안한 거 맞죠?
0
81
2
강의자료 업데이트 문의
0
96
2
강의에서 BCryptPasswordEncoder 에 역할(5-2)
0
57
1
강의 업데이트 계획이 궁금합니다.
0
113
2
MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)
0
163
2
어떤 것이 업데이트 된 건가요?
0
164
2





