통신 수
모놀리식 애플리케이션을 작은 마이크로서비스로 분할하면 마이크로서비스들이 서로 통신해야 하므로 통신 오버헤드가 증가합니다. 많은 구현 사례에서 HTTP를 통한 REST가 사용됩니다. HTTP를 통한 REST는 경량 통신 프로토콜이지만 메시지 볼륨이 클 경우 문제를 일으킬 수 있습니다. 경우에 따라 많은 메시지를 주고 받는 서비스를 통합하는 방법을 고려해야 할 수 있습니다. 통신 수를 줄이기 위해 점점 더 많은 서비스를 통합하는 상황에 직면한 경우 문제 도메인과 도메인 모델을 검토해야 합니다.
프로토콜
본 백서의 앞부분인 비동기식 통신 및 간단한 메시징 섹션에서는 여러 가지 가능한 프로토콜에 대해 설명합니다. 마이크로서비스의 경우 HTTP와 같은 간단한 프로토콜을 사용하는 것이 일반적입니다. 서비스에서 교환하는 메시지는 JSON 또는 YAML과 같이 사람이 읽을 수 있는 형식이나 Avro 또는 Protocol Buffers와 같은 효율적인 바이너리 형식과 같이 다양한 방식으로 인코딩할 수 있습니다.
캐싱
캐시는 마이크로서비스 아키텍처의 지연 시간과 통신 수를 줄일 수 있는 좋은 방법입니다. 실제 사용 사례와 병목 현상에 따라 여러 캐싱 계층을 사용할 수 있습니다. AWS에서 실행되는 많은 마이크로서비스 애플리케이션은 ElastiCache를 사용하여 결과를 로컬로 캐싱함으로써 다른 마이크로서비스에 대한 호출량을 줄입니다. API Gateway는 백엔드 서버의 로드를 줄일 수 있도록 내장된 캐싱 계층을 제공합니다. 또한, 캐싱은 데이터 지속성 계층의 로드를 줄이는 데 유용합니다. 우수한 캐시 적중률과 데이터의 적시성/일관성 간에 적절한 균형을 찾는 것이 모든 캐싱 메커니즘의 공통적인 과제입니다.