在单独的API中抽象常见客户端问题是否有意义

时间:2017-12-01 18:38:50

标签: rest asynchronous client database-connection messaging

最近,我研究过不同的客户端API,例如HTTP ReST客户端,消息传递客户端和数据库客户端。 在每种情况下,出现了同样的问题,其中包括:

  • 连接池
  • 具有干净错误处理的异步和非阻塞I / O
  • 使用退避策略实施请求重试(对于ReST和消息传递更是如此)
  • 请求批处理(数据库的情况更多)

我看到它的方式,可以在单独的API中从基础请求中抽象出上述问题。此外,由于编码上述问题的复杂性,有意义的是不要多次支付费用。

因此,我本来希望有一个通用的客户端帮助程序API,它允许我重试和批处理任何类型的请求,同时异步执行所有请求。 它将是一种任务执行器API,但没有其他复杂性(例如调度,因为只需要执行一个任务)。

因此我的问题,或者我错过了什么?

1 个答案:

答案 0 :(得分:1)

我会说要将它们分开。我的猜测是,你会发现每一个的第三方解决方案,但我不知道任何图书馆会做这三个。

我不确定您是否使用Java编程,但我认为apache项目在分割commons- *库中的实用程序方面做得很好。你可能想从那里汲取灵感。

https://commons.apache.org/