我有一个Apache Camel(版本2.15.3)路由,配置如下(使用XML和Java DSL的混合):
这是在单个链接路径路径中配置的。
问题是当服务仍在处理时,与外部REST服务的连接将超时。基础设施有点复杂(边缘服务器,负载平衡器,Glassfish),而且我不认为增加超时是正确的解决方案。
我如何实现这条路线,以便在满足我的所有要求的同时避免超时:(1)将响应写入相应的FTP文件夹,(2)审核交易,以及(3)满足其他交易/背景 - 具体要求?
我对Camel和REST比较陌生,所以也许这很简单,但我不知道使用Camel和REST工具和技术。
(欢迎提出改进的问题和建议。)
答案 0 :(得分:1)
这是一个典型的异步用例。在您点击它们后,其余服务是否可以立即为您提供令牌ID或某个唯一ID?
这样你就可以拥有一个批处理作业或其他一些骆驼路线,这些路线将从数据库/缓存中获取此ID,并在20分钟后再次点击其余服务。
如果其他服务可以提供此功能,这是我能想到的理想解决方案。
你是对的,在同步通话上等待20分钟是一个疯狂的想法。您计划发布到其余服务的文件/有效负载的估计大小是多少?
答案 1 :(得分:1)
是不是可以打破一个部分的两个主要步骤并进行两次异步操作?
我会这样做。
第2步。
这样,您无需等待,处理可能需要20分钟或更长时间。您只需将缓存值设置为24小时不过期。