Spring Cloud Stream 3.0 存在生产者问题

her*_*-zh 1 spring-cloud-stream spring-cloud-stream-binder-kafka

看了spring cloud stream 3.0的文档,理解了新的用java.util.function.[Supplier/Function/Consumer]来代表生产者、消费和生产、消费者,这个应该是正确的。

但我不了解供应商。

该文档指出,对供应商的轮询用于一致地为供应商生成数据,并且不需要任何程序参与。

但是很多时候,我们需要在特定时间生成数据,例如 Web 请求,而我找不到任何文档或示例。

它可能就像注入 Supplier 对象并调用 get() 方法一样简单,但是如何禁用轮询调用呢?

感谢所有提供信息的人。

Ole*_*sky 5

我们将更新我们将在几周内发布的 SR1 文档,但这里是完整的代码,演示如何完成您所描述的内容。我们依赖项目反应堆中的 EmitterProcessor:

@SpringBootApplication
@Controller
public class WebSourceApplication {

    public static void main(String[] args) {
        SpringApplication.run(WebSourceApplication.class);
    }

    EmitterProcessor<String> processor = EmitterProcessor.create();

    @RequestMapping
    @ResponseStatus(HttpStatus.ACCEPTED)
    public void delegateToSupplier(@RequestBody String body) {
        System.out.println("Sending " + body);
        processor.onNext(body);
    }

    @Bean
    public Supplier<Flux<String>> supplier() {
        return () -> processor;
    }
}
Run Code Online (Sandbox Code Playgroud)

进而 and then curl -H "Content-Type: text/plain" localhost:8080/ -d Hello