스캐터 개더(Scatter Gather) 패턴 - 요청방식
- 로드밸런싱에서는 하나의 worker에만 요청했다. 스캐터 개터 패턴은 모든 worker에 요청을 전달한다.
- 디스패처가 모든 워커의 응답을 모아 하나의 응답을 사용자에게 돌려준다.
로드 밸런싱에서는 하나의 워커에만 전달하지만 스캐터 개더 패턴에서는 모든 워커에게 요청을 전달한다.
예제 아키텍처: 검색 서비스
- 사용자가 검색어를 입력하면 내부 검색 워커 인스턴스에 전달된다.
- search worker는 각각이 가지고 있는 storage 영역내에서 검색을 수행한다. (예: file 1100, file 101200)
- 검색을 마치면 벡엔드로 검색결과를 넘겨준다.
- backend 서비스는 데이터를 결합하고 정렬하고 사용자에게 전달한다.
예제 아키텍처: 호텔예약 서비스
- 클라이언트가 도시, 날짜, 호텔을 검색하면 시스템이 수신하고 여러 호텔에 견적을 요청한다.
- 각 호텔에서 검색된 결과를 특정 조건으로 정렬한 다음 클라이언트에 보내준다.
고려 사항
- worker는 특정 순간에 접근이 불가능할 수 있다.
- 디스패처를 워커와 분리
- 요청과 응답을 받는 시간
참고
반응형