2012-02-09 3 views
1

두 개의 다중 스레드 서버 (Server1 및 Server2)가있는 응용 프로그램을 개발 중입니다. 이 두 서버의 데이터를 Map에 저장합니다. 내가 원하는 것은 일종의 서버 간의로드 밸런스를 수행하는 것입니다 (양 서버에서 동일한 양의 데이터를 가짐). 따라서 두 가지 질문이 있습니다.여러 서버가있는 클라이언트 - 서버 아키텍처

1) 클라이언트를 서버에 무작위로 연결하려면 어떻게합니까? 예를 들어 클라이언트를 시작할 때이 클라이언트는 Server1에 연결하고 다른 클라이언트를 시작하면이 클라이언트는 Server2에 연결합니다.

2) 서버에서로드 밸런스를 수행하는 데 사용할 수있는 기술은 무엇입니까?

감사합니다.

답변

1

매우 편리 두 서버간에 부하를 분산하는 솔루션은 Round-robin DNS입니다. 여기에있는 기본 아이디어는 모든 DNS 요청 (클라이언트에 의한)이 단일 IP 주소로만 해석되는 것이 아니라 목록 (두 경우)입니다. 이는 곧 어느 한쪽 서버에 효과적으로 연결된다는 것을 의미합니다.

의 단순성 (및 단점) 각각의 IP 주소를 리턴 확률 것이 아니다100/n (n리스트의 어드레스들의 수이다). 나는 단지 그것이 반드시 50 % (2의 경우)가 아닐 것이라고 강조하고 싶었다.

이제 사실 부하 분산을 원한다면, 당신은 당신이 Server1Server2 앞에 둘 것로드 밸런싱 제품으로 볼 수있다. 이와 같은 것이 훨씬 더 신뢰할 수 있지만 비용/복잡성도 증가합니다.

가장 간단한 해결책은 라운드 로빈 DNS입니다.

0

아마 ReverseProxy을 찾고있을 것입니다. 프로젝트에 따라 다른 솔루션보다 적절한 솔루션이 많이 있습니다.

관련 문제