270.7. InOut 메시지 교환 패턴 사용


Camel 2.8+

FIX 프로토콜은 이벤트 중심적이고 비동기적이지만 요청-응답 메시지 교환을 나타내는 특정 쌍의 메시지가 있습니다. InOut 교환 패턴을 사용하려면 요청에 대한 단일 요청 메시지와 단일 응답 메시지가 있어야합니다. 예를 들어 OrderStatusRequest 메시지 및 UserRequest가 있습니다.

270.7.1. 소비자용 InOut Exchanges 구현

QuickFIX/J 인포인트 URI에 "exchangePECDHEn=InOut"을 추가합니다. 아래 예제의 MessageOrderStatusService 는 동기 서비스 방법이 있는Bean입니다. 메서드가 요청자 세션으로 다시 전송되는 요청에 대한 응답을 반환합니다(이 경우 ExecutionReport).

    from("quickfix:examples/inprocess.cfg?sessionID=FIX.4.2:MARKET->TRADER&exchangePattern=InOut")
        .filter(header(QuickfixjEndpoint.MESSAGE_TYPE_KEY).isEqualTo(MsgType.ORDER_STATUS_REQUEST))
        .bean(new MarketOrderStatusService());

270.7.2. Producers를 위한 InOut Exchanges 구현

생산자의 경우 응답을 수신하거나 시간 초과가 발생할 때까지 메시지를 보냅니다. FIX에서 응답 메시지의 상관 관계를 유지하는 표준 방법은 없습니다. 따라서 InOut 교환의 각 유형에 대해 상관 관계를 정의해야 합니다. Exchange 속성을 사용하여 상관관계 기준 및 타임아웃을 지정할 수 있습니다.

설명키 문자열주요 ConstantDefault

일치하지 않음

"CorrelationCriteria"

QuickfixjProducer.CORRELATION_CRITERIA_KEY

없음

ECDHEiseconds의 상관 관계 시간 초과

"CorrelationTimeout"

QuickfixjProducer.CORRELATION_TIMEOUT_KEY

1000

상관관계 조건은 MessagePredicate 오브젝트로 정의됩니다. 다음 예에서는 트랜잭션 유형이 STATUS이고 Order ID가 요청과 일치하는 지정된 세션의 FIX ExecutionReport를 처리합니다. 세션 ID는 요청 자의 여야 하며 응답을 검색할 때 발신자 및 대상 CompID 필드가 취소됩니다.

exchange.setProperty(QuickfixjProducer.CORRELATION_CRITERIA_KEY,
    new MessagePredicate(new SessionID(sessionID), MsgType.EXECUTION_REPORT)
        .withField(ExecTransType.FIELD, Integer.toString(ExecTransType.STATUS))
        .withField(OrderID.FIELD, request.getString(OrderID.FIELD)));

270.7.3. 예제

소스 코드에는 소비자 및 생산자의 InOut 교환을 보여주는 RequestReplyECDHE 예제 가 포함되어 있습니다. 이 예제에서는 주문 상태 요청을 허용하는 간단한 HTTP 서버 끝점을 생성합니다. HTTP 요청은 FIX OrderStatusRequestMessage로 변환되고, 상관 조건으로 보강되며, 그러면 빠른 수정 끝점으로 라우팅됩니다. 그러면 응답이 JSON 형식 문자열로 변환되고 웹 응답으로 제공될 HTTP 서버 끝점으로 다시 전송됩니다.

Spring 구성이 Camel 2.9에서 변경되었습니다. 예를 들면 아래를 참조하십시오.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.