Я пытаюсь создать Spring Cloud Stream Source Bean внутри Spring Boot Application, которое просто отправляет результаты метода в поток (основная тема Kafka привязана к потоку).
В большинстве примеров Stream, которые я видел, используется аннотация @InboundChannelAdapter
для отправки данных в поток с помощью опросчика. Но я не хочу использовать опросчик. Я пробовал настроить опросчик на пустой массив, но другая проблема заключается в том, что при использовании @InboundChannelAdapter вы не можете иметь никаких параметров метода.
Общая концепция того, что я пытаюсь сделать, - это чтение из входящего потока. Выполните некоторую асинхронную обработку, а затем отправьте результат в исходящий поток. Так что использование процессора тоже не вариант. Я использую @StreamListener
с каналом Sink для чтения входящего потока, и это работает.
Вот код, который я пробовал, но он вообще не работает. Я надеялся, что это будет так просто, потому что моя раковина была такой, но, может быть, это не так. Ищу кого-нибудь, кто указал бы мне на пример источника, который не является процессором (т.е. не требует прослушивания входящего канала) и не использует @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;
}
}