这将是我的第二个项目,它将通过使用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
哪种情况最好?
答案 0 :(得分:1)
这取决于您的要求。
正如您所注意到的,两种变体都运行良好。因此,从高处来看,这是一个品味问题。但是......让我们来看看这个项目中的有用或噪音功能!
Gateway
旨在在不同的层之间分配业务和集成逻辑。从另一方面来看,Gateway
方法与Spring的自动装配功能一起使我们可以为我们的集成解决方案提供高级API。
所以,如果确实需要为第二次调用公开这样的高级API,请进一步思考。
如果<channel>
和<service-activator>
(或类似)对足以达到解决方案,则没有理由将我们的配置划分得如此精细!
从另一方面来看,这只是我的看法。你最终会找到自己的风格。