2012-03-30 5 views
1

인터뷰에서 질문을 받았으며 아래의 질문에 대한 대답이 정말 혼란 스럽습니다.자주 사용하는 웹 사이트에서로드 밸런서가 작동 중임

일부 사이트는 초당 500 건의 요청을 받고 있으며 많은 수의 히트를 해결하기 위해 처리하는 메커니즘은 Load Balancer를 통해 발생합니다.

위의 경우, 모든 요청은 먼저 Load Balancer로 이동하고, 응답을 제공 할 실제 서버로 요청시 전달하는 것은 Load Balancer 책임입니다.

그래서 Load Balancer는 모든 요청의 진입 점이며 요청을 처리 할 수있는 용량이 있습니까? 그렇다면 Load Balancer가 얼마만큼의 요청을 수용 할 수 있는지 그리고 어떤 한계를 수락하면 그런 경우 시스템이 작동하는 방식은 무엇입니까?

내 질문에 의미가 없다면 유감입니다. 설명해주십시오.

감사합니다.

+0

로드 밸런서가 트래픽을 더 많이 처리 할 수있는 이유 또는로드 균형 조정기의 용량을 초과하여 확장하는 방법을 묻는 질문이 있습니까? – mellamokb

답변

2

부하 분산 장치는 일반적으로 들어오는 요청마다 백엔드 서버에 대한 연결을 유지 관리하는 경량 이벤트 기반 HTTP 서버 (예 : NginX)를 실행합니다.

인기있는 설정은 다음과 같습니다의 nginx는 더 많은 연결을 처리하고 상당히 예측 가능한 메모리 사용 패턴을 가지고 수 있기 때문에, 보통 PHP 실행 여러 아파치 백엔드 서버 (에 대한 프론트 엔드로 사용할 수 있습니다

NginX 
|  \ 
|  \ 
Apache Apache ... 

, 파이썬, 루비 등).

Apache를 Tomcat/Jetty/으로 바꾸고 여기에 서블릿 컨테이너 인을 삽입하면 동일한 논리가 적용됩니다.

여기에서 요점은 백엔드 서버가 대개 더 많은 시간을 소비한다는 것입니다 (일부 스크립팅 언어 실행, DB 쿼리 등). 각 백엔드 서버가 HTTP에 의해 병목 현상을 일으키지 않을 가능성이 많습니다 서버 구성 요소가 아니라 응용 프로그램 논리에 의해 결정됩니다.

이러한 종류의 문제에 대한 모든 해결책을 제공하는 크기는 없습니다. 또 하나의 솔루션 (많은 경우)에서는 단일로드 밸런서 시스템의 용량을 초과하면 여러 백엔드 서버를 지원하는 여러 밸런서간에 DNS 라운드 로빈을 사용하게됩니다.

+0

답변 해 주셔서 감사합니다 ... 귀하의 설명이 도움이되었습니다. – Jayesh

0

연결량이 Load Balancer 진입 점의 한계까지 올라가면 DNS 레벨 균형을 구현할 수 있습니다 (이름 해석이 요청에 사용되는 경우). 각 요청은 요청에서 동일한 이름에 대해 서로 다른 해상도로 전환하고 해당 요청을 다른로드 밸런서에게 보냄으로써 DNS 해상도로 인해 다른 엔트리 포인트로 보내집니다 (예 : "라운드 로빈"). 다른 서버 (후자는 다른 LB 기술을 암시합니다).

하지만 균형 조정을 담당하는 서버의 경우 초당 500 회의 요청이 문제가되지 않아야합니다. HAProxy는 초당 수천 건의 요청을 처리 할 수 ​​있으며, 다른 서버로 다른 세션을 유도하거나, 활성 세션을 다른 서버에 분산 유지할 수 있습니다.

는 HAProxy는 TCP와 높은 가용성,로드 밸런싱, 프록시 제공하는 무료 매우 빠르고 안정적인 솔루션입니다 응용 프로그램을 HTTP 기반. 특히 지속성 또는 Layer7 처리가 필요한 동안 매우 높은로드로 아래에서 크롤링되는 웹 사이트에 적합합니다. 오늘날의 하드웨어를 사용하면 수십만 개의 연결을 지원할 수 있습니다.

관련 문제