기본 output
채널을 통해 스트림의 프로세서 로 메시지를 보내는 소스가 있습니다. 이제 다른 채널 을 통해서도 실패 메시지를 보내고 싶습니다 .
를 Source
사용하여 추가 채널 을 확장 하고 추가 하는 바인딩 가능한 인터페이스를 만들어야한다고 생각했습니다 @Output
. SCDF가 실제로이 채널에 대한 Kafka 주제를 만들도록하려면 어떻게해야합니까? IOW, 스트림 정의는 어떻게 생겼습니까?
예 : 라인을 따라 무언가
source | processor | sink source > error-sink
와 source | processor
일반 사용 output
채널 / 카프카 항목을, 그리고 source > error-sink
다른 채널 / 주제를 사용하여.
요구 사항이 다운 스트림 처리를 위해 오류 메시지를 추적하는 것이라면 Spring Cloud Stream과 관련된 OOTB DLQ 메커니즘을 사용할 수 있습니다. Rabbit 및 Kafka 모두에서 지원됩니다 . Spring Cloud Data Flow (SCDF)에서 전역 설정으로 또는 스트림별로 DLQ를 활성화 할 수 있습니다 .
당신이 원하는 경우 여전히 다른 메시지를 처리하기 위해 사용자 정의 채널을 정의 할 좋아, 당신은 다음과 유사한 인터페이스를 사용자 정의 만들어야 할 것 샘플을 .
SCDF에서 스트림을 배포하는 동안 각각 spring.cloud.stream.kafka.bindings.<channelName>.producer
및 spring.cloud.stream.kafka.bindings.<channelName>.consumer
바인딩 속성을 통해 생산자와 소비자 간의 대상을 재정의 할 수 있습니다 .
편집하다:
위의 접근 방식이 있지만 Spring Cloud Stream 리드 (@ marius-bogoevici)로부터 훨씬 더 간단한 솔루션에 대해 배웠습니다.
이미 사용할 수있는 기본 오류 채널이 있으며 Spring Integration이이를 지원합니다.
이를 통해 앱에서 다음을 통해 기본 오류 채널에 맞춤 메시지를 보낼 수 @Autowire @Qualifier("errorChannel")
있습니다. 실제로이 지원은 모든 OOTB 응용 프로그램 에서도 사용할 수 있습니다.
그런 다음 다음을 통해이 오류 채널의 대상을 재정의 할 수 있습니다 spring.cloud.stream.bindings.error.destination=errorchannel-test
. SCDF에서 스트림 배포시 다음을 통해 전달합니다 --properties
.
예를 들면 :
스트림 생성 foo --definition "mysource | log"
stream deploy foo --properties "app.mysource.spring.cloud.stream.bindings.error.destination = errorchannel-test"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다