2013-07-31 2 views
6

Twilio 및 기타 HTTP 구동 웹 서비스는 fallback URL이라는 개념을 가지고 있습니다. 여기서 기본 URL이 시간 초과되거나 실패 할 경우 웹 서비스가 원하는 URL로 GET 또는 POST를 보냅니다. Twilio의 경우 폴백 URL에도 오류가 발생하면 요청을 다시 시도하지 않습니다. 기본 서버가 다운되거나 연결할 수없는 경우 오류가 이더넷에서 손실되지 않도록 별개의 컴퓨터에서 대체 URL을 호스팅하고 싶습니다.HTTP 요청을 저장하고 전달할 때 재 시도가 필요합니까?

나는 차에 대한 몇 가지 방법 싶습니다

: 성공까지 대체 URL에

  1. 스토어 요청
  2. 재생 주 서버에 약간 다른 URL에 대한 요청이
  3. 재시도 # 2 큐/데이터베이스에서 요청을 삭제하십시오.

이렇게 할 수있는 기존 소프트웨어가 있습니까? 필요하다면 나는 스스로를 만들 수있다. 나는 누군가가 이미 해 놓았을 것이라고 생각했다. 나는 검색에 적합한 전문 용어를 알기 위해 HTTP와 주변 도구 (프록시, 역방향 프록시 등)에 익숙하지 않다.

답변

3

몇 가지 가능성이 있습니다.

하나의 옵션은 Common Address Redundancy Protocol 또는 잉어를 사용하는 것입니다. 맨 페이지의 간단한 설명이 뒤 따른다.

"carp는 동일한 로컬 네트워크의 여러 호스트가 IP 주소 집합을 공유 할 수있게하며 주된 목적은 이러한 주소를 항상 사용할 수 있도록하는 것이지만 일부 구성에서는 carp도로드 균형 조정 기능을 제공 할 수 있습니다."

기본 또는 마스터 http 서비스가 실패 할 때 보조 또는 백업 http 서비스가 마스터가되도록 IP 균형을 구성 할 수 있어야합니다. carp는 응용 프로그램 서비스와 달리 호스트 지향적입니다. 따라서 http 서비스가 중단되면 잉어가 네트워크 인터페이스를 중단시켜야합니다. 즉, 시스템에 로그인하고 유지 보수 작업을 수행 할 때 하나 이상의 IP 주소가 필요합니다. 원래 서비스가 다시 온라인 상태가되면 후속 작업을 수행하는 스크립트가 필요합니다.

두 번째 옵션은 nginx를 사용하는 것입니다. 이것은 아마도 당신이하려고하는 것에 더 적합 할 것입니다.

몇 년 전에 나는 무엇을하려고했는지와 비슷한 것을 필요로했고 나는 그걸 해커가 해킹하는 것을 끝내었다. 본질적으로 스위치였습니다. 'A'가 실패하면 'B'로 전환하십시오. 재 동기화 프로세스는 'A'가 온라인으로 돌아 왔을 때 'B'에서 시간 기록 된 로그를 가져 와서 'A'로 다시 재생하는 것이 었습니다.

관련 문제