0

我正在尝试在 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 服务优雅地响应客户端?

4

1 回答 1

1

将您扫描对象的兑现设置为某个合理的值。另一件事,由于您使用 Web 服务向用户显示结果,我假设您一次只能显示几行(或记录)。您可以使用 Hbase PageFilter 以便每次只获得指定的行数,而不必等待一次获得所有行。

于 2012-12-19T18:39:05.397 回答