모 놀리 식 REST API를 마이크로 서비스 아키텍처로 옮기는 것을 고려 중이며 데이터 스토리지에 대해 약간 혼란스러워지고 있습니다. 내가 본 것처럼 마이크로 서비스의 장점은 다음과 같습니다.
- 수평 확장 가능-로드 및 / 또는 서버 다운에 대처하기 위해 여러 개의 중복 마이크로 서비스 사본을 실행할 수 있습니다.
- 느슨하게 결합-다른 것을 변경하지 않고도 마이크로 서비스의 내부 구현을 변경할 수 있으며 독립적으로 배포하고 변경할 수 있습니다 ...
내 문제는 데이터 저장에 관한 것입니다. 내가 본 것처럼 몇 가지 옵션이 있습니다.
- 모든 마이크로 서비스가 공유하는 단일 데이터베이스 서비스-느슨한 커플 링의 이점을 완전히 없애는 것 같습니다.
- 각 마이크로 서비스에 로컬로 설치된 데이터베이스 인스턴스-수평 적으로 확장하는 방법을 볼 수 없으므로 옵션이라고 생각하지 않습니다.
- 각 마이크로 서비스에는 자체 데이터베이스 서비스가 있습니다.이 방법은 느슨한 커플 링 및 수평 확장의 이점 (중복 데이터베이스 사본 및 / 또는 샤딩 사용)을 유지하므로 가장 유망한 것으로 보입니다.
나에게 세 번째 옵션은 유일한 옵션 인 것처럼 보이지만 엄청나게 무겁고 지나치게 과도하게 설계된 솔루션입니다. 내가 올바르게 이해하고 있다면 4-5 개의 마이크로 서비스가있는 간단한 응용 프로그램의 경우 마이크로 서버 당 2 개의 실제 마이크로 서비스 인스턴스 (서버 장애의 경우 및 다운 타임없이 배포)와 같은 16-20 개의 서버를 실행해야합니다. 마이크로 서비스 당 2 개의 데이터베이스 서비스 인스턴스 (서버 장애 등의 경우)
솔직히 말해서 이것은 약간 어리석은 것처럼 보입니다. 실제 프로젝트는 아마도 4-5 개 이상의 서비스를 가질 것이라는 점을 염두에두고 간단한 API를 실행하는 16-20 대의 서버? 내가 누락 된 기본 개념이 있습니까?
응답하는 동안 도움이 될만한 것들 :
- 저는이 프로젝트의 유일한 개발자이며 가까운 미래에있을 것입니다.
- Node.js와 MongoDB를 사용하고 있지만 언어에 구애받지 않는 답변에 관심이 있습니다. 잘못된 기술을 사용하고있을 수도 있습니다.