将 Project Reactor 与 Apache Camel 结合使用

Using Project Reactor with Apache Camel

我想知道是否可以将 Project Reactor 与 Apache Camel 一起使用,以便应用程序完全反应和非阻塞 IO。我想知道在集成其他 Apache Camel 组件时,Project Reactor 支持如何工作。

例如,我可以从 S3 中被动读取吗(因此我需要在幕后使用 Async S3 客户端)?或者我会在从 S3 读取时阻塞,然后只根据返回的内容创建一个 Flux 吗?

在需要反应性的地方,您应该使用相关的 spring 和反应器库。有伪骆驼代码你也可以在骆驼豆或处理器等数据库调用

@RestController
@RequestMapping(value = "/api/books")
@RequiredArgsContructor
public class HomeController {

    private final BookRepository bookRepository;
    private final ProducerTemplate template

    @GetMapping("")
    public Flux<Book> getHome() {

        List <Book>  books=bookRepository.findAll();
        X ret = template.requestBody("direct:something", books, X.class);


    }


}

@Component
public class SomeRoute extends RouteBuilder {
    @Override
    public void configure() throws Exception {

     from("direct:something")
                .process(e-> {

                   List<Book> books = e.getIn.getBody(List.class)

                    // some logic 

                   e.getIn.setBody(new X( ))

                })
}