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


Camel 2.8 이상

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

271.7.1. 소비자를 위한 InOut Exchanges 구현

QuickFIX/J enpoint URI에 "exchangePattern=InOut"을 추가합니다. 아래 예제의 MessageOrderStatusService 는 동기 서비스 메서드를 사용하는VLAN입니다. 메서드는 요청자 세션으로 다시 전송되는 요청(이 경우 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());

271.7.2. Producers를 위한 InOut Exchanges 구현

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

Expand
설명키 문자열키 연속(Key Constant)Default

상관 관계 기준

"CorrelationCriteria"

QuickfixjProducer.CORRELATION_CRITERIA_KEY

없음

Milliseconds의 상관관계 시간 초과

"CorrelationTimeout"

QuickfixjProducer.CORRELATION_TIMEOUT_KEY

1000

상관 관계 기준은 MessagePredicate 오브젝트로 정의됩니다. 다음 예제에서는 트랜잭션 유형이 STATUS이고 주문 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)));

271.7.3. 예제

소스 코드에는 소비자 및 생산자에 대한 InOut 교환을 보여주는 RequestReplyExample 이라는 예제가 포함되어 있습니다. 이 예제에서는 주문 상태 요청을 수락하는 간단한 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은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동