【问题标题】:Design approach for error handling in rest based components基于 rest 的组件中错误处理的设计方法
【发布时间】:2017-11-22 09:05:01
【问题描述】:

我有 3 个组件 A、B 和 C

A= 最终用户 B= 一个中间件,它接受来自最终用户 A 的输入并将请求委托给 C C= 做一些工作并向 B 返回响应。

用例:假设在成功将请求从 B 委托给 C 之后,C 组件出现故障。就错误处理而言,最合适的方法是什么?

我是否应该在 B 组件上添加一个超时功能,以便如果 B 在指定的时间段内没有收到 C 的响应,那么它将返回错误响应?

为了跟踪失败的请求,我应该使用数据库存储还是持久队列来记录错误响应?

请多多指教。

【问题讨论】:

  • 好问题。用版主标记。它太宽泛了。

标签: java rest osgi


【解决方案1】:

首先,你应该问自己一些框架的用法:

如果您想自己实现低级逻辑,您肯定会查看已经存在的实现及其超时参数(例如 http://www.baeldung.com/httpclient-timeout)。

如果出现问题,您还应该更好地从 C 向 B 返回错误代码(这意味着您应该在 C 端捕获所有异常并将它们包装到错误响应中)。我什至想说,最好在出错的情况下返回否定结果,而不是抛出异常(成本更低)并且只抛出未经检查的异常(https://blog.philipphauer.de/checked-exceptions-are-evil/ - 如果你问为什么)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 2019-07-10
    • 2014-02-23
    • 2016-08-18
    相关资源
    最近更新 更多