2012-11-16 6 views
6

분산 속도 제한 알고리즘을 구현해야하는 가격 책정 플랫폼을 연구 중입니다. 나는 x 서비스를 제공하는 게이트웨이가 있습니다. 모든 게이트웨이는로드 밸런서를 통해 모든 서비스를 제공 할 수 있습니다. 한 고객이 서비스에 초당 여러 건의 전화를 사면 그 전화는 모든 게이트웨이를 통해 라우팅 될 수 있습니다. 그렇다면 고객 호출을 제한하기 위해 모든 게이트웨이에서 통화 카운터를 업데이트하는 좋은 알고리즘을 알고있는 사람이 있습니까?분산 속도 제한 알고리즘

이 알고리즘과 관련하여 중요한 두 가지 지표는 네트워크 오버 헤드 및 허용 된 호출 수와 속도 제한 사이의 편차입니다.

감사합니다.

"잘 알려진"알고리즘이 있는지 알고 싶습니다.

+1

어떤 알고리즘을 사용해 보았습니까? – Woot4Moo

+1

문제를 연구 중이며, 기존 알고리즘을 모르기 때문에 어떤 알고리즘도 구현하지 않았습니다. 각 호출 후에 카운터를 전송하여 호출을 수신 한 다른 게이트웨이에 알리고 다른 모든 카운터를 줄이는 순진한 알고리즘을 쉽게 상상할 수 있지만 속도 제한이 초당 약 10 000 호출 인 경우 네트워크 오버 헤드가 끔찍합니다. 또 다른 경우는 reate limit Lambdacrash

+0

분산 속도 제한 알고리즘을 아는 경우 이름을 알려주십시오. p – Lambdacrash

답변

3

나는 article (archive.org)을 기반으로 솔루션을 구현했습니다. 나는 알고리즘이 Leaky Bucket이라고 생각하지만 잘 동작한다고 생각한다. 전체 할당량을 버스트로 사용할 수 있기 때문에 완벽하지는 않지만 전반적으로 node.js와 Redis는 매우 빠릅니다. 허용 된 요청과 비율의 차이는 상당히 클 수 있으며 샘플 창과 버킷 크기 간의 비율에 따라 달라질 수 있습니다.

+0

고맙습니다.이 알고리즘을 구현하고 내 경계에 있는지 확인하십시오 : – Lambdacrash

+0

기사에 제공된 링크가 더 이상 사용 가능하지 않은 것으로 보입니다. – lrAndroid

+0

@IrAndroid : archive.org를 가리키는 링크가 수정되었습니다. – mhvelplund