구릉님의 프로필 사진

구릉

1 3

프리퀄 | 마이크로 서비스 시대의 부하 분산 정책

마이크로 서비스 시대의 부하 분산 정책에 관한 프리퀄(Prequal) 시스템 디자인


프리퀄은 클라이언트가 주어진 정보를 바탕으로 어떤 서버로 요청을 전송할지 선택하는 시스템으로, 클라이언트 사이드 로드 밸런싱을 구현할 수 있습니다. 이는 전용 로드 밸런서를 사용하지 않고, 클라이언트가 직접 서버 선택을 결정하는 매커니즘입니다. gRPC와 같이 DNS 조회를 통해 서버 IP를 찾고, 정책에 따라 부하를 분산합니다.


프리퀄 시스템은 다음과 같은 주요 구성 요소와 메커니즘을 포함합니다:

  1. 부하 신호(Load Signal): 서버는 처리 중인 요청 수(requests-in-flight, RIF)와 예상 레이턴시(estimated latency)를 계산합니다. 이 정보는 서버의 현재 부하 상태와 응답 시간을 나타냅니다.

  2. Probing Rate: 클라이언트는 정기적으로 서버에 RIF와 예상 지연 정보를 요청하는 프로세스입니다. 이 비율은 클라이언트가 수행해야 하는 쿼리 수에 비례하여 증가합니다.

  3. Replica Selection (Server Selection): 클라이언트는 프로브 프로세스를 통해 서버마다의 RIF와 예상 지연 시간 정보를 바탕으로 서버를 선택합니다. 이는 예상 지연 시간이 가장 짧은 서버를 선택하는 단순한 방법과는 다르게, RIF와 예상 지연 시간 사이의 적절한 밸런스를 고려합니다.

  4. Probe Pools: 클라이언트가 서버 프로브 정보를 저장하는 공간입니다. 이는 정보의 신선도, 고갈, 품질 저하 등의 문제를 해결하기 위한 추가적인 메커니즘을 포함합니다.

  5. Sinkholing: 서버가 애플리케이션 로직을 처리하기 전에 에러 코드를 반환하는 경우, 레이턴시 평가가 왜곡될 수 있습니다. 프리퀄은 이를 휴리스틱한 방법으로 해결합니다.

  6. 동기 모드와 비동기 모드: 프리퀄은 정보 저장을 위한 프로브 풀을 사용하는 비동기식 프로브와, 쿼리가 들어올 때마다 서버를 무작위로 선택하여 프로브 정보를 조회하는 동기식 프로브를 모두 지원합니다.


이 글은 프리퀄의 설계와 구현에 대해 상세히 설명하며, RIF와 Latency를 기준으로 부하를 분산하는 목적을 가지고 있습니다. 이는 마이크로 서비스 아키텍처에서 서버 부하를 효과적으로 관리하기 위한 방법론을 제시합니다.


https://medium.com/rate-labs/프리퀄-마이크로-서비스-시대의-부하-분산-정책-7776d03e77d6

프리퀄 | 마이크로 서비스 시대의 부하 분산 정책

Medium

프리퀄 | 마이크로 서비스 시대의 부하 분산 정책

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 3월 15일 오전 1:18

댓글 0