나는 다음과 같은 것을 성취하고 싶다.
[Source] --> [Splitter] --B--> [Processor] --B--> [Aggregator] ---> [Sink]
| ^
| |
|--------------------C-------------------|
비즈니스 로직을 포함하는 여러 프로세서 후에 특수 생산자는 제어 메시지 C와 함께 유형 B의 여러 메시지를 내 보내야합니다.
추가 비즈니스 로직이있는 프로세서는 이러한 메시지에서 작동합니다.
Aggregator는 제어 메시지와 함께 모든 결과를 "수집"해야합니다.
제어 메시지는 기본적으로 생성 메시지 (B)의 수를 포함하므로 Aggregator는
Aggregator는 메시지 헤더를 사용하여 Splitter에서 예상하는 메시지 수를 추론 할 수 있지만 메시지가 도달하지 않으면 시간 초과가 발생합니까?
일반적으로 말해서, 하나 이상의 입력 또는 출력 채널을 가진 Transformers를 가질 수 있습니까?
2 먼저-
표준 애그리 게이터 모듈에는 timeout
매개 변수가 있습니다 (기본값은 50 초).
시간 초과 초마다 실행되는 메시지 그룹 저장소 리퍼로 구현되므로 실제 시간 초과는 2 x timeout
평균이 1.5 x timeout
됩니다.
어 그리 게이터는 이제 group-timeout
reapear를 사용하는 것보다 더 정확한 속성을가집니다. 이를 사용하려면 사용자 정의 집계 프로세서가 필요합니다. 또한 group-timeout-expression
시간 제한이 런타임 조건 (예 : 현재 그룹 크기)에 따라 달라질 수 있습니다.
이제 1-
한 모듈에서 다른 모듈로 측 파대 데이터를 전송하는 표준 메커니즘은 없습니다. 일반적으로 모듈은 메시지 헤더를 설정하여 서로 통신합니다. 이것이 표준 스플리터가 정보를 수집 자 ( sequenceNumber
및 sequenceSize
헤더)에 보내는 방법 입니다.
ReleaseStrategy
다른 헤더를 사용 하도록 사용자 지정 으로 사용자 지정 집계 프로세서를 만들 수 있습니다 .
일반적으로 말해서, 하나 이상의 입력 또는 출력 채널을 가진 Transformers를 가질 수 있습니까?
XD는 아니지만 후속 프로젝트 (spring-cloud-stream)는 여러 입력 / 출력을 앱에 바인딩하는 것을 지원합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다