我们正在为我们未来的产品之一开发POC,我们有如下要求。
为实现这一目标,我们在工作者应用程序上开发了spring spring集成app和spring JMS listener。
主应用程序是纯粹的spring集成应用程序,我们使用了db poller和jms出站网关。
工作者应用程序是我需要一些建议的地方,到目前为止我使用的是什么,spring default message listener(消息驱动的pojo) 从jms队列中获取消息。一旦拿起,将其发送到收件人的固定列表。 从这里开始,每个spring / spring集成组件处理流以根据业务规则验证msg并将其发送到Web服务。 收到响应或发生超时后,我们会更新db以跟踪每个产品ID及其状态和响应数据。
现在我的问题从这里开始,我如何通知主应用程序所有固定的集成列表已完成以便主应用程序 可以更新订单状态。
另外请记住,当单个MDB(spring pojo msg listener)选中时,每个产品都会被发送到3-4个差异Web服务。 因此,如果订单有3个项目,那么这些项目将被发送到至少9个差异服务。
任何人都可以建议我如何处理聚合策略?
答案 0 :(得分:0)
现在我的问题从这里开始,我如何通知主应用程序已经完成所有固定的集成列表,以便主应用程序可以更新订单状态。
您可以使用相同的JMS消息侦听器方法,其中Worker应用程序将其结果生成到队列,而主应用程序只是侦听该队列并为所需数据选取消息。 <int-jms:message-driven-channel-adapter>
适合您。
当单个MDB(spring pojo msg listener)接收时,每个产品将被发送到3-4个差异Web服务。
如果您将所有这些服务发送给<puiblish-subscribe-channel>
,我们可以通过applySequence = true
上的内置<puiblish-subscribe-channel>
选项和默认CorrelationStrategy
获得收益<aggregator>
。
其他一切听起来都不错。