将 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( ))
})
}
我想知道是否可以将 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( ))
})
}