2010-07-15 6 views
4

탄성 부하 분산을 수행하는 방법이 있는지 궁금합니다. 나는 HAProxy에 대해 읽었지만, 더 많거나 적은 기계에서 작동하도록 HAProxy를 재구성해야 할 것 같습니다.탄성 부하 분산

그림을 더 명확하게 만들려면 웹 백엔드 클러스터가 있어야합니다 (apache + mod_rails라고 말하면됩니다). 백엔드의 사용량을 모니터링하고 트래픽이 매우 많이 발생하는 경우 똑같은 내용의 다른 컴퓨터를 매우 빠르게 (초 단위로) 불러올 수 있습니다. 그러나 HAProxy가 다시 시작하지 않고 추가 백엔드를 사용하는 방법을 알지 못합니다 (가용성 저하). HAProxy 나 다른로드 밸런서를 사용하는 방법이 있습니까?

이중화를 위해 두 개의로드 밸런서를 사용할 수있는 방법이 있다고 생각했습니다. 그런 다음 하나를 가져와 구성을 업데이트하고 다시 가져온 다음 다른 하나를 제거 할 수 있습니다. 그러나 나는 이것을하는 방법에 대한 좋은 생각이 없습니다.

답변

2

새로운 서버를 추가해야하는 경우 새 서버와 이전 프로세스가 모두 병렬로 작동하기 때문에 "-sf $ oldpid"로 새 프로세스를 시작할 때 거의 감지 할 수 없지만 새 서버를 추가해야합니다.

1) (선호 하나) : 일시적으로 서버를 해제해야하는 경우

, 당신은 몇 가지 옵션이 가능 "옵션 HTTP-비활성화-404-의"및 서버의 확인 응답을 조작 (404)를 반환 이렇게하면 새 연결은 사용할 수 없지만 기존 사용자는 세션을 완료 할 수 있습니다. 그런 다음 500을 반환하고 프로세스를 중단 할 수 있습니다. 이 방법의 장점은 당신이 LB를 만질 필요가 없다는 것입니다. 당신이 운영하는 서버에서 모든 것이 제어됩니다. 이것이 대부분의 합리적인 인프라가 수행하는 방법입니다.

2) 쉬운 : 당신이 완료되면 다음

printf "disable server 1\n" | socat stdio unix-connect:/var/state/haproxy.stat 

을 활성화 : 사용 socat, 당신이 작업하고자하는 서버를 통계 소켓에 연결하여 사용하지

printf "enable server 1\n" | socat stdio unix-connect:/var/state/haproxy.stat 

설정을 수정하지 않는 한 이 감지되지 않더라도 다시 시작할 이유가 없습니다.

0

예산이 충분하면 www.Zeus.com을보십시오. 새 릴리스에서는 몇 주 만에이 기능이 기본적으로 제공되지만 기존 릴리스를 사용하여 서비스 수준 모니터링을 제공 한 다음 스크립트 언어 및 API를 사용하여 백엔드 서버에 대한 자동 프로비저닝 기능을 만들 수 있습니다 .

무료 라이센스는 개발자 라이선스이므로 무료로 사용할 수있는 모델을 모델링 할 수 있습니다.

Zeus 소프트웨어는 특정 시점에서 해당 경로로 이동하려는 경우 여러 클라우드 공급자로부터 사용할 수도 있습니다.

+0

예산이 없으므로 옵션이 아닙니다. 그렇더라도, 내가 찾던 것과 일치하는 기능을 웹 사이트에서 발견하지 못했습니다. – dschatz

관련 문제