我正在尝试在 hbase 之上构建一个 Web 服务,因此代码大致如下:
@GET
@Path("/blabla")
@Override
public List<String> getEvents($$$params$$$) {
......
//calling hbase query the events
......
}
当 Hbase 服务关闭时,hbase Java API 不断重试连接到 Hbase 区域服务器 util,最终超时并抛出 RT 异常:
NoServerForRegionException: Unable to find region for event,,99999999999999 after 10 tries.
逻辑没有问题,我这里的问题是 HttpClient 在 hbase 超时重试之前超时。然后我的 Web 服务 API 使用者没有响应,丑陋。
问题 -
如果您的服务器超时时间可能比 http 连接本身长,那么这里的最佳做法是什么?在这种情况下,如何让 Web 服务优雅地响应客户端?