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>
(或类似)对足以达到解决方案,则没有理由将我们的配置划分得如此精细!
从另一方面来说,这只是我的意见。随着经验的积累,你最终会找到自己的风格。
这将是我的第二个项目,将使用 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>
(或类似)对足以达到解决方案,则没有理由将我们的配置划分得如此精细!
从另一方面来说,这只是我的意见。随着经验的积累,你最终会找到自己的风格。