HTTP 비동기 요청-응답 사용
HTTP 를 요청하고 비동기적으로 응답을 받을 수 있습니다 HTTPAsyncRequest 그리고 HTTPAsyncResponse 노드, 또는 SOAPAsyncRequest 그리고 SOAPAsyncResponse 메시지 흐름에 노드를 추가하세요.
그 SOAPAsyncRequest 노드는 비동기 요청을 위한 두 가지 방법을 지원합니다. HTTP 전송:
- WS-Addressing을 사용하여 쌍을 이루는 SOAPAsyncResponse 노드로 응답을 지정합니다. 그 SOAPAsyncRequest 노드는 메시지 흐름을 계속하기 전에 HTTP 202의 확인을 기다립니다. 그리고 SOAPAsyncRequest 확인 응답을 받지 못하면 노드 블록을 생성합니다. 백엔드 서버가 새로운 HTTP 연결을 만들어 SOAPAsyncResponse 노드. 이는 기본 작동입니다.
- HTTP 비동기 요청-응답 사용. 언제 SOAPAsyncRequestUse HTTP asynchronous request-response 가 선택된 경우, SOAPAsyncRequestHTTP 노드는 페어링된 SOAPAsyncResponse 노드를 설정하여 백엔드 서버가 동일한 소켓을 사용하여 응답할 수 있도록 합니다. 이 옵션을 선택하면 WS-Addressing 헤더가 송신되지만 백엔드 서버가 이를 이해할 필요는 없습니다. WS-Addressing 헤더는 mustUnderstand로 표시되지 않으며 replyTo 헤더는 익명으로 설정됩니다. 따라서 이 노드는 WS-Addressing 대신 비동기 HTTP 소켓 핸들링을 사용하여 HTTP 요청을 작성하고 비동기 응답을 수신합니다.
비동기 요청 노드는 응답을 대기하지 않고 플로우로 제어를 리턴합니다. 이 조치가 추가 요청을 핸들링하기 위한 요청 스레드를 해제하는 반면에, 응답은 다른 스레드의 쌍을 이룬 응답 노드에서, 새 트랜잭션으로 핸들링됩니다. 응답 노드는 별도의 메시지 플로우에 있을 수 있지만 쌍을 이룬 요청 노드와 동일한 통합 서버에 있어야 합니다.
HTTP 의 비동기 요청-응답 동작이 비동기적인 이유는, IBM® App Connect Enterprise 가 요청과 응답을 비동기적으로 처리하기 때문이며, 이를 통해 메시지 흐름이 비동기 요청에 대한 응답을 기다리지 않고 다음 메시지를 가져올 수 있게 됩니다. 백엔드 서버는 요청-응답을 일반 동기 HTTP 요청으로 봅니다.
시나리오
다음의 경우 HTTP 비동기 요청-응답을 사용할 수
있습니다.
- 대기 시간이 긴 백엔드 서버와 상호작용할 때 동기 HTTP 요청을 사용하면 백엔드 서버에 동시 연결하기 위해 많은 수의 스레드를 필요로 하는 많은 미해결 요청이 초래될 수 있습니다. 대신에 비동기 HTTP 소켓 핸들링을 사용하면 응답을 요청에서 분리할 수 있습니다.
- HTTP 를 사용하여 비동기 요청-응답을 SOAPAsyncRequestreplyTo 헤더를 익명화하지 않고 WS-Addressing을 사용하는 대신 사용할 수 있습니다.
제한사항
언어를 사용할 때 HTTPAsyncRequest 노드, 또는 SOAPAsyncRequestHTTP 비동기 요청-응답 노드에는 다음과 같은 제한 사항이 적용됩니다
- 경로 재지정이 지원되지 않습니다. 경로 재지정 상태 코드 (3xx)의 메시지는 오류로 처리되고, 오류 탭에 지정된 특성을 따르면서 응답 노드의 오류 터미널로 응답이 라우팅됩니다.
- WS-RM은 HTTP 비동기 요청-응답 사용에 호환되지 않습니다.