3

阿尔乔姆。很高兴看到新版本的 si。是否可以在 Spring 集成流程中使用反应器或 rxjava?像这样

例如:输入带有一些集合的xml=>reactive splitter->reactive transformer->reactive outbound

4

1 回答 1

2

首先感谢您的反馈和对我们工作的关注。我们正在努力追随现实世界的趋势,并始终保持及时;-)。

好吧,关于 Reactor 或类似的 Reactive Streams 解决方案。

我注意到做你的“从头开始”流程是个好主意。即使 Spring Integration 看起来像 Reactive Streams,我们应该以这种方式组合它们也没关系。

首先,Spring Integration 是一个“托管”流广告,它需要 Spring Container,所以如果你想将它与 Reactor 结合起来,你应该从提供Stream. 从另一端获取Stream来自 Spring Integration 的 Reactor 的访问权限,我们最终应该将其设为 Spring bean。

即将到来的 Spring Integration 4.1 引入了Promise<?> Gateway. 因此,如果您的ControllerorService是 Spring bean 并且代码是通过 Reactor 编写的,Stream那么您可以使用 Gateway 接口访问 Spring 集成流 - 并且该集成流的结果将被填充为Event下一个流操作。

当您需要pushSpring Integration 的操作而不是pull.

假设你有 Reactor Defferedbean:

@Bean
public Deffered<Integer, Stream<Integer>> reactorStream() {
    Deferred<Integer, Stream<Integer>> stream = Streams.<Integer>defer(new Environment());
    stream.compose().collect(5).timeout(1000);
    return stream;
}

之后,我们可以继续使用它channel-adapter

<outbound-channel-adapter channel="reactorStreamChannel" ref="reactorStream" method="accept"/>

无论如何,我不建议一直从一个“世界”跳到“另一个”,因为我们可能会失去他们两个最好的。或者 Reactor Stream 是一个主流,都是 Spring 集成的。

我很高兴听到我们 Reactor 团队的其他想法 :-)。

于 2014-11-03T09:23:28.637 回答