如何处理远程代理

时间:2017-03-06 20:20:49

标签: apache-camel

我创建了一个路径,通过拆分器进行多次查找,聚合响应并返回对象列表。

我使用远程代理来调用路由。

鉴于路线上有多个分支,有些分支可能会成功,有些分支会失败。如何从远程代理获取所有返回的结果,还有失败原因列表?

我可以想到3个选项,但希望有更清洁的东西

  1. 使用通过远程代理调用传入的标头结构来收集错误
  2. 在包含结果和错误的结构中包装远程代理的返回值
  3. 将错误路由到某个错误端点(不知道如何与我的请求相关联)
  4. 还有其他选择吗?

2 个答案:

答案 0 :(得分:1)

我会使用选项3.将所有错误路由到一般错误端点,您可以在其中记录错误并返回一些默认响应。这样,您可以从所有分支中引用该通用错误端点,确保它们在遇到错误时都会以相同的方式做出反应。

答案 1 :(得分:1)

您应该能够在聚合策略类中获取异常详细信息并相应地采取措施。

这取决于您希望从整体设计中实现的目标。作为一般惯例,如果您希望远程练习的使用者在出错时失败,则应立即获取异常详细信息。如果您的远程代理是REST端点,则它可以返回500错误。其他协议也可以遵循类似的策略。