21장. 신뢰할 수 있는 메시징 활성화
초록
Apache CXF는 WS-RM(WS-Reliable Messaging)을 지원합니다. 이 장에서는 Apache CXF에서 WS-RM을 활성화하고 구성하는 방법을 설명합니다.
21.1. WS-RM 소개 링크 복사링크가 클립보드에 복사되었습니다!
21.1.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
WS-ReliableMessaging(WS-RM)은 분산 환경에서 메시지를 안정적으로 전달하는 프로토콜입니다. 이를 통해 소프트웨어, 시스템 또는 네트워크 장애에 있는 분산 애플리케이션 간에 메시지를 안정적으로 전달할 수 있습니다.
예를 들어 WS-RM을 사용하면 올바른 메시지가 네트워크 간에 정확히 한 번, 올바른 순서로 전달되도록 할 수 있습니다.
21.1.2. WS-RM 작동 방식 링크 복사링크가 클립보드에 복사되었습니다!
WS-RM은 소스와 대상 끝점 간의 메시지를 안정적으로 전달할 수 있도록 합니다. 소스는 메시지의 초기 발신자이며 대상은 그림 21.1. “웹 서비스 신뢰할 수 있는 메시징” 에 표시된 대로 최종 수신자입니다.
그림 21.1. 웹 서비스 신뢰할 수 있는 메시징
WS-RM 메시지의 흐름은 다음과 같이 설명될 수 있습니다.
-
RM 소스는
CreateSequence
프로토콜 메시지를 RM 대상에 보냅니다. 여기에는 승인을 수신하는 끝점에 대한 참조가 포함됩니다(wsrm:AcksTo
끝점). -
RM 대상은
CreateSequenceResponse
프로토콜 메시지를 RM 소스로 다시 보냅니다. 이 메시지에는 RM 시퀀스 세션의 시퀀스 ID가 포함되어 있습니다. -
RM 소스는 애플리케이션 소스에서 보낸 각 메시지에 RM
시퀀스
헤더를 추가합니다. 이 헤더에는 시퀀스 ID와 고유한 메시지 ID가 포함됩니다. - RM 소스는 각 메시지를 RM 대상으로 전송합니다.
-
RM 대상은 RM
SequenceAcknowledgement
헤더가 포함된 메시지를 전송하여 RM 소스에서 메시지를 수신함을 확인합니다. - RM 대상은 정확히once-in-order 방식으로 애플리케이션 대상에 메시지를 전달합니다.
RM 소스는 아직 승인을 받지 못했음을 메시지를 다시 전송합니다.
첫 번째 재전송 시도는 기본 재전송 간격 후에 수행됩니다. 기본적으로 지수 백오프 간격 또는 고정 간격으로 연속 재전송 시도가 수행됩니다. 자세한 내용은 21.5절. “WS-RM 구성” 에서 참조하십시오.
이 전체 프로세스는 요청과 응답 메시지 모두에 대해 대칭적으로 발생합니다. 즉, 응답 메시지의 경우 서버는 RM 소스 역할을 하며 클라이언트는 RM 대상 역할을 합니다.
21.1.3. WS-RM 전달 보장 링크 복사링크가 클립보드에 복사되었습니다!
WS-RM은 사용된 전송 프로토콜에 관계없이 분산 환경에서 안정적인 메시지 전달을 보장합니다. 안정적인 전달이 보장되지 않는 경우 소스 또는 대상 끝점에서 오류를 기록합니다.
21.1.4. 지원되는 사양 링크 복사링크가 클립보드에 복사되었습니다!
Apache CXF는 다음 버전의 WS-RM 사양을 지원합니다.
- WS-ReliableMessaging 1.0
(기본값) 2005년 2월 제출 버전에 대한 수정 사항은 현재 최신 버전이 아닙니다. 그러나 이전 버전과의 호환성을 위해 이 버전이 기본값으로 사용됩니다.
WS-RM의 버전 1.0은 다음 네임스페이스를 사용합니다.
http://schemas.xmlsoap.org/ws/2005/02/rm/
http://schemas.xmlsoap.org/ws/2005/02/rm/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow WS-RM의 이 버전은 다음 WS-Addressing 버전과 함께 사용할 수 있습니다.
http://schemas.xmlsoap.org/ws/2004/08/addressing (default) http://www.w3.org/2005/08/addressing
http://schemas.xmlsoap.org/ws/2004/08/addressing (default) http://www.w3.org/2005/08/addressing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow WS-RM의 2005년 2월 제출 버전을 준수하기 위해 첫 번째 WS-Addressing 버전(Apache CXF의 기본값)을 사용해야 합니다. 그러나 대부분의 다른 웹 서비스 구현이 최신 WS-Addressing 사양으로 전환되었으므로 Apache CXF를 사용하면 WS-A 버전을 선택하여 상호 운용성을 용이하게 할 수 있습니다( 21.4절. “런타임 제어”참조).
- WS-ReliableMessaging 1.1/1.2
공식 1.1/1.2 웹 서비스 신뢰할 수 있는 메시징 사양에 해당합니다.
WS-RM의 버전 1.1 및 1.2에서는 다음 네임스페이스를 사용합니다.
http://docs.oasis-open.org/ws-rx/wsrm/200702
http://docs.oasis-open.org/ws-rx/wsrm/200702
Copy to Clipboard Copied! Toggle word wrap Toggle overflow WS-RM의 1.1 및 1.2 버전에서는 다음 WS-Addressing 버전을 사용합니다.
http://www.w3.org/2005/08/addressing
http://www.w3.org/2005/08/addressing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
21.1.5. WS-RM 버전 선택 링크 복사링크가 클립보드에 복사되었습니다!
다음과 같이 사용할 WS-RM 사양 버전을 선택할 수 있습니다.
- 서버 측
- 공급자 측에서 Apache CXF는 WS-ReliableMessaging 버전을 클라이언트에서 사용하고 적절하게 응답합니다.
- 클라이언트 측
- 클라이언트 측에서 WS-RM 버전은 클라이언트 구성에서 사용하는 네임스페이스( 21.5절. “WS-RM 구성”참조)에 따라 결정되거나 런타임 제어 옵션을 사용하여 WS-RM 버전을 재정의해야 합니다( 21.4절. “런타임 제어”참조).