기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
FAQ
이 섹션에서는 마이크로서비스의 데이터 지속성 활성화와 관련하여 자주 제기되는 질문에 대한 답변을 제공합니다.
현대화 여정의 일환으로 모놀리스 데이터베이스를 언제 현대화할 수 있습니까?
모놀리스 애플리케이션을 마이크로서비스로 분해하기 시작할 때는 모놀리스 데이터베이스를 현대화하는 데 집중해야 합니다. 데이터베이스를 애플리케이션에 맞게 조정되는 여러 개의 작은 데이터베이스로 분할하는 전략을 세워야 합니다.
여러 마이크로서비스를 위한 레거시 모놀리스 데이터베이스를 유지할 수 있습니까?
여러 마이크로서비스에 대한 공유 모놀리스 데이터베이스를 유지하면 밀결합이 이루어지므로 변경 사항을 마이크로서비스에 독립적으로 배포할 수 없으며 모든 스키마 변경 사항은 마이크로서비스 간에 조정되어야 합니다. 관계형 데이터 저장소를 모놀리스 데이터베이스로 사용할 수 있지만 일부 마이크로서비스에는 NoSQL 데이터베이스가 더 적합할 수 있습니다.
마이크로서비스 아키텍처용 데이터베이스를 설계할 때 고려해야 할 사항은 무엇입니까?
애플리케이션 기능에 맞는 도메인을 기반으로 애플리케이션을 설계해야 합니다. 애플리케이션의 기능을 평가하고 관계형 데이터베이스 스키마가 필요한지 여부를 결정해야 합니다. 요구 사항에 맞으면 NoSQL 데이터베이스 사용도 고려해야 합니다.
다양한 마이크로서비스 전반에서 데이터 일관성을 유지하기 위한 일반적인 패턴은 무엇입니까?
가장 일반적인 패턴은 이벤트 기반 아키텍처
트랜잭션 자동화를 유지하려면 어떻게 해야 합니까?
마이크로서비스 아키텍처에서 트랜잭션은 서로 다른 마이크로서비스가 처리하는 여러 로컬 트랜잭션으로 구성됩니다. 로컬 트랜잭션이 실패할 경우 이전에 완료된 성공적인 트랜잭션을 롤백해야 합니다. 이런 상황을 피하려면 Saga pattern을(를) 사용하면 됩니다.
각 마이크로서비스에 대해 별도의 데이터베이스를 사용해야 하나요?
마이크로서비스 아키텍처의 주요 장점은 느슨한 결합입니다. 각 마이크로서비스의 영구 데이터는 비공개로 유지되어야 하며 마이크로서비스의 API를 통해서만 액세스할 수 있어야 합니다. 마이크로서비스가 동일한 데이터베이스를 공유하는 경우 데이터 스키마의 변경 사항을 신중하게 평가해야 합니다.
마이크로서비스가 모두 단일 데이터베이스를 공유하는 경우 마이크로서비스의 영구 데이터를 비공개로 유지하려면 어떻게 해야 합니까?
마이크로서비스가 관계형 데이터베이스를 공유하는 경우 각 마이크로서비스에 대한 개인 테이블이 있는지 확인하세요. 개별 마이크로서비스 전용의 개별 스키마를 만들 수도 있습니다.