인프런 커뮤니티 질문&답변
마이크로서비스 간 파일 동기화
작성
·
555
0
안녕하세요 강사님.
데이터 동기화와 관련된 강의를 듣다가, DB에 저장되는 데이터가 아닌, 로컬 서버에 저장되어야 하는 파일 데이터는 어떻게 관리해야 하는지 궁금하여 문의드립니다.
각 마이크로서비스가 파일을 저장해야 하는 일이 생긴다면, 이 파일은 어떻게 관리하는 것이 best practice일까요? 제가 생각했을 때는 아래 두 방식 중 2번인데요..
각 마이크로서비스 로컬에 저장하고 마이크로서비스 간 동기화
모든 마이크로서비스가 참조하는 외부 스토리지에 저장
강사님의 생각이 궁금하여 문의드립니다.
답변 1
0
안녕하세요, 이도원입니다.
말씀하신 내용도 스토리지 개념으로 파일 시스템을 사용한다면, DB하고 같은 문제일 것 같습니다. Kafka에서도 파일시스템으로 데이터(메시지)를 보내고 받을 수 있기 때문에, Kafka Connect에 File Sink Connector와 File Source Connector를 통해 DB와 동일하게 구성해 보실 수 있습니다.
강의에서도 말씀드렸지만, 공용 스토리지를 사용하는 것과 각각의 서비스에 직접 데이터를 저장하고 동기화 하는 방법은 정해진 답이 있다기 보다는 MSA로 구축하려고 하는 도메인 서비스 및 서비스 룰에 따라서 결정될 거 같습니다. 서비스에서 사용되는 데이터가 독립적일 수도 있고, 공유되는 방식이나 공유되는 시점에 따라서도 분리 원칙이 달라질수도 있어서, 어떤 방식이 최선이라고 말하기는 어려울 것 같습니다. 다만, 강의에서 사용된 구조처럼 간단한 경우라면 공유 데이터 스토리지를 사용하는 것이 더 간단하고 성능에서도 유리할 것 같습니다.
감사합니다.





