스프링 클라우드 스트림 소스 빈을 스프링 부트 애플리케이션에 작성하려고합니다. 메소드의 결과를 스트림으로 보냅니다 (기본 카프카 토픽은 흐름).스프링 클라우드 스트림 소스를 사용하여 메소드 결과를 스트림으로 보내기
내가 본 스트림 샘플의 대부분은 @InboundChannelAdapter
주석을 사용하여 폴러를 사용하여 스트림으로 데이터를 보냅니다. 하지만 폴러를 사용하고 싶지는 않습니다. 폴러를 빈 배열로 설정하려고 시도했지만 다른 문제는 @InboundChannelAdapter를 사용할 때 메서드 매개 변수를 사용할 수 없다는 것입니다.
내가하려는 일의 전반적인 개념은 인바운드 스트림에서 읽는 것입니다. 비동기 처리를 수행 한 다음 결과를 아웃 바운드 스트림에 게시하십시오. 따라서 프로세서를 사용하는 것도 옵션이 아닙니다. Sink 채널과 함께 @StreamListener
을 사용하여 인바운드 스트림을 읽었으며 작동합니다.
여기 제가 시도한 코드가 있지만 이것은 전혀 작동하지 않습니다. 내 싱크가 어쩌면 그랬을 수도 있기 때문에 그렇게 간단한 것이기를 바랬습니다. 프로세서가 아닌 소스 (예 : 인바운드 채널에서 수신 할 필요가 없음)의 예를 가리키는 누군가를 찾고 @InboundChannelAdapter
을 사용하지 않거나 내가해야 할 일을 수행하기위한 디자인 팁을 제공하지 않습니다. 다른 방법으로. 감사! 당신은 폴러를 사용하지 않으려면
@EnableBinding(Source.class)
public class JobForwarder {
@ServiceActivator(outputChannel = Source.OUTPUT)
@SendTo(Source.OUTPUT)
public String forwardJob(String message) {
log.info(String.format("Forwarding a job message [%s] to queue [%s]", message, Source.OUTPUT));
return message;
}
}