가장 좋은 방법은 클라이언트가 을 수행하는 것입니다. 서버 장애를 처리하는 데는 전혀이 필요합니다. 그것은 고객의 책임이 아니며 절대로해서는 안됩니다. 프록시 서버 및로드 밸런서와 같은 서버 측 기술은 서버 오류를 처리하는 데 가장 적합합니다.
가장 일반적인 접근 방식은 "기본 서버"의 사고 방식에서 벗어나 대신 각각의 REST 요청을 처리 할 수있는 서버 클러스터를 만드는 것입니다. REST 요청이 상태 비 저장 (및 있어야 함)되어 클러스터의 임의의 서버로 라우팅 될 수있는 경우 클러스터 앞에로드 밸런서를 사용하여 서버의 실패를 처리 할 수 있습니다.
부하 분산 장치가 서버가 작동하지 않는 것을 감지하면 서버는 회전을 해제합니다. 또한이 모델은 확장 성을 높이는 데 도움이됩니다. 계층에서 더 많은 서버를 회전시키고로드 밸런서에 자체 등록하도록함으로써 REST 서버 계층을 확장 할 수 있기 때문입니다.
또한 DNS를 사용하여 서버 장애로부터 클라이언트를 보호 할 수 있습니다. 현재 활성 상태 인 서버로 DNS 레코드 포인트를 변경하고 주 서버가 다운 될 때 수정하십시오. 그러나 TTL은이 기술이 적당한 시간 내에 작동하도록하려면 매우 낮아야합니다. DNS는 노드 오류가 아닌 전체 데이터 센터 오류를 처리하는 데 더 적합하지만 상당히 포괄적 인 옵션이지만 선택 사항입니다.
클라이언트에서 일부 라운드 로빈 메커니즘을 구현할 수 있습니다. 그러나 결국 서버 측 (고 가용성,로드 밸런싱 등)에서 문제를 해결하는 것이 더 나을 것입니다. – TGlatzer
하지만 서버 측 솔루션은 주 서버가 완전히 충돌하고 요청을 백업 및 뷰어 클라이언트는 모든 시스템이 될 수 있습니다 (시스템의 유무에 상관없이). – user2579277