내가 가진 문제는 다음과 같습니다. 요청 시 대규모 데이터 세트를 반환하는 분산 응용 프로그램(지리적으로 분산된 노드 3개)이 있습니다. 네트워크 트래픽을 줄이려면 클라이언트 요청을 분산 애플리케이션의 가장 가까운 인스턴스로 보내야 합니다. 저는 몇 가지 옵션을 생각하고 있었지만 각각에 대해 질문이 있습니다. 귀하의 의견에 감사드립니다.
옵션 1: DNS를 사용하여 여러 IP 주소를 확인합니다. 예를 들면 다음과 같습니다. - 영국 시스템에서 server.copmany.com으로 전화를 거는 경우 - DNS는 이를 문제의 시스템의 영국 IP 주소로 확인합니다. - 미국 컴퓨터에서 server.copmany.com으로 전화를 걸면 DNS를 통해 해당 시스템의 미국 IP 주소를 확인합니다.
질문: 이런 식으로 DNS를 구성할 수 있나요?
옵션 2: 가장 가까운 서버에 대한 IP 주소를 확인할 수 있는 로드 밸런서를 사용합니다.
질문: 가능하다고 생각하지만, Load Balancer를 통해 돌아가는 응답이 아니라 직접 호출 시스템으로 돌아가는 응답이 감당할 수 없습니다.
옵션 3: 이러한 종류의 문제에 대한 다른 해결책을 찾았습니까?
고마워요, 마이크
답변1
나는 옵션 # 1을 선택하겠습니다.
어떤 DNS 서버를 사용하고 있는지 모르지만 GeoIP를 지원하는 BIND와 다양한 국가의 다양한 사용자에 대한 다중 보기를 사용하여 수행할 수 있습니다. "BIND GeoIP"를 인터넷에 검색하면 설정 방법에 대한 많은 튜토리얼이 제공됩니다.
그렇지 않으면 이 서비스를 제공하는 타사 서비스(키워드: "관리형 DNS, 지리적 위치")가 있습니다.
답변2
단지 HTTP라면 아마도 더 간단한 geo-DNS를 수행하는 대신 적절한 사이트에 301을 제공할 수 있습니다.
아마도 잘 작동하지 않을 것 중 하나는 애니캐스트입니다. 보기에는 좋아 보일지라도 클라이언트가 노드 사이를 전환하는 경우를 (상당한 지원 없이는) 처리할 수 없습니다.
답변3
DNS를 통해
나는 이전에 사용해 본 적이 있기 때문에 특정 Bind가 뷰를 지원한다는 것을 알고 있습니다. 다른 서버도 그럴 수 있습니다. 보기를 사용하면 요청하는 IP 주소를 기반으로 원하는 모든 영역 정보를 제공할 수 있습니다.http://www.zytrax.com/books/dns/ch7/view.html
라운드 로빈 DNS를 사용하여 3개의 IPS 중 하나를 해결합니다. 그러나 요청이 어디서 왔는지는 상관하지 않습니다.
구글링해서 찾았는데(http://www.dnsmadeeasy.com/services/global-traffic-director/) - 아마도 흥미로울 것입니다.