我正在尝试将Reactor 2x集成到现有Spring 4
应用程序中,以在执行REST
请求期间提高性能,其中resources
可以相互独立地获取,类似于 map-reduce,我们将作业并行化为多个线程,然后将它们加入缓冲区.
到目前为止,我们有这个示例在非弹簧环境中工作:
//Ordered resources to apply transformations.
List<Map<String, Object>> result;
result = Streams.from(resources)
.flatMap(m -> Streams.just(m) .dispatchOn(Environment.cachedDispatcher())
.map(resourceToMapFunction::apply))
.buffer().next().await(5, TimeUnit.SECONDS);
在上面的示例中,我们使用 应用转换resourceToMapFunction
,然后使用buffer()
方法连接 ,创建Promise
等待结果并返回result
.
我的第一个问题,这是应该使用 Reactor 的方式吗?我知道这些转换是正确应用的,但也许,我是一个新手,Reactor
没有以正确的方式使用某些东西。
我的第二个问题,没什么大不了的,但是Reactor
项目中是否有任何东西可以按照输入中提供的相同顺序返回resources
?由于这是在多个线程中执行的,所以我很确定答案不是,就像我说的那样,我的担心更少,但无论如何都想问。
最后一个问题,当我将此代码引入我的Spring
项目时,转换失败,因为Bean
应用底层转换的依赖项不在执行线程中,这是我可以使用 Spring Reactor 版本轻松完成的事情吗?如果是这样,是否有任何链接或文档显示如何操作?
非常感谢!
何塞·路易斯