2016-10-03 5 views
-2

ASP.NET MVC를 C#과 함께 사용하고 있습니다. 세 개의 서버간에 데이터를 전달해야하는 프로젝트가 필요합니다.asp.net에서 세 가지 다른 서버간에 데이터를 전달하는 방법 C#

는 다음 시나리오에 대한 자세한 설명입니다

1) 서버 1이 있습니다 (웹 서버) 웹 사이트가 IIS를 통해 호스팅 된 경우.

2)는 서버 1 서버 2 Server3을에게 응답을 보낼 서버 2

3)에 요청을 전송. (Server2는 server1에 직접 응답을 보낼 수 없습니다.)

4) Server1은 Server1에 응답을 전달합니다.

server3과 server1 사이에 연결이 끊어지는 경우 처리 방법 server3에서 server1로 리디렉션하는 것은 현재 상태를 알아야하는 경우 필수입니다.

기타 세부 사항 : 이 프로젝트는 장바구니와 관련이 있습니다. Server1은 웹 사이트가 IIS, 고객 선택 제품에서 호스팅되고 지불 프로세스를 시작하는 곳입니다 .Server2는 지불 게이트웨이입니다 (하지만 클라이언트 요구 사항에 따라 지불 게이트웨이는 웹 사이트 즉 server1에 응답을 보내지 않으므로 다른 서버, 즉 server3에 응답을 보냅니다) .Server3는 중복 서버이며 웹 서버와 연결됩니다. IIS에서 호스팅되며 지불 게이트웨이에서 응답을 받고 Webserver에 전달하는 데 사용됩니다. 따라서 Server3은 서버 1과 서버 2 사이의 인터페이스 역할을합니다.

최상의 해결책을 알려주십시오.

+0

체인에서 API 요청을 처리하는 경우입니까? 당신은 실제 웹 요청에 대해 이야기하고 있습니까? 나는 당신이 서버들 사이에서 요청을 전달하는 상황에 있기를 원할지는 모르겠다. 더 나은 아키텍처가 있다고 생각합니다. 아마도 부하 분산 장치 뒤에 서비스가 있습니까? – MichaelLake

+0

Server2/Server3에서 호스팅되는 응용 프로그램 유형을 알려주시겠습니까? IIS 또는 Windows 서비스 또는 다른? – RajN

+0

server1의 첫 번째 요청에서 요청의 상태를 '보류 중'으로 표시하고 응답이 server3에서 오는 경우 상태를 '완료'로 업데이트 할 수 있습니다. 어떤 경우 든 연결이 끊어 지거나 오류가 발생하면 보류중인 요청과 완료된 요청이 기록됩니다 – Mehmood

답변

0

느슨하게 결합 된 통신 스타일이고 비동기식 인 경우 대기열로 이동하여 게시/구독 패턴을 사용하십시오.

은 두 번째는 Server3ToServer1에 메시지를 등록합니다 Server3ToServer1

서버 (1) 셋째 하나 Server2ToServer3 입니다

먼저 하나가 Server1ToServer2 당신이 MessageingQueue라는 이름의 대기열이이 큐 안에 3 개 주제

가 말할 수 있습니다 서버 2는 Server1ToServer2의 메시지를 구독합니다. 서버 3은 Server2ToServer3의 메시지를 구독합니다.

서버 1은 메시지를 S erver1ToServer2 대기열에서 서버 2가 서버 3을 선택하여 Server2ToServer3 항목에 메시지를 보내면 서버 3이 선택합니다. 마지막으로 서버 3이 Server3ToServer1에 마지막 응답을 보냅니다.

관련 문제