Spring 整合流程设计

Spring integration flow Design

这将是我的第二个项目,将使用 Spring 集成来实现。在我的第一个项目成功发布后,我真的对这个架构充满信心。但是我几乎不需要澄清来定义外部调用的流程。在我的架构中,我们有多个调用数据库、Web 服务和缓存服务器,我们已经像在单个流中一样定义了这些流。

场景 1.

channel- >JDBCOutbound -> router ->splitter ->WSOutbound -> Aggregator ->reply channel.

这里所有的外部服务调用都是从一个网关执行的。这些是好的方法还是我们可以定义单独的网关调用如下

场景 2.

Seq 1) Gateway ->JDBCOutbound -> router ->reply channel.

Seq 2) Gateway(use the response from Seq 1) ->splitter ->WSOutbound -> Aggregator ->reply channel

哪种情况最好?

这取决于您的要求。

如您所见,两种变体都运行良好。所以,从高处看,这是一个品味问题。但是...让我们来看看这个在我们项目中有用或无用的函数吧!

Gateway 旨在将业务和集成逻辑分布在不同的层之间。另一方面,Gateway 方法与 Spring 的自动装配功能相结合,使我们的集成解决方案具有高级 API。

所以,如果真的需要暴露这么高的级别API二次调用,再考虑一下。

如果 <channel><service-activator>(或类似)对足以达到解决方案,则没有理由将我们的配置划分得如此精细!

从另一方面来说,这只是我的意见。随着经验的积累,你最终会找到自己的风格。