모든 기능을 하나의 서버로 구현한 모놀리식 방식에서는 다른 기능 실행이 필요할 때 메소드를 호출했다. 기능을 쪼개서 다른 물리 서버에 할당한 MSA 방식은 서버 간 네트워크 요청이 필요하다. 마이크로서비스 간 통신을 어떻게 처리하는지 알아보자.
통신 종류
통신 방법의 종류
- 동기 HTTP : 요청을 보낸 후 응답이 올때까지 대기
- 비동기 AMQP : 요청을 보낸 후 다른 일을 하다가 응답이 도착하면 처리
외부 클라이언트의 요청 처리
- GateAPI가 모든 요청을 받고, 라우팅 규칙을 처리한다.
- 유레카에게 마이크로서비스의 위치 정보를 얻어서 그쪽으로 요청을 토스한다.
- 로드밸런싱은 라운드로빈 방식으로 할 수도 있고, 라우팅 규칙에 클라이언트 지역을 추가해 특정 인스턴스로 라우팅할 수도 있다.
RestTemplate
내부 서비스의 요청 처리 (RestTemplate 사용)