2012-12-19 5 views
0

내가 HBase와의 상단에 웹 서비스를 구축을 위해 노력하고, 그래서 코드는 대략 다음과 같습니다 웹 서비스 모범 사례 - 이상 서버 시간 제한 HTTP 클라이언트 시간 제한

@GET 
@Path("/blabla") 
@Override 
public List<String> getEvents($$$params$$$) { 
    ...... 
    //calling hbase query the events 
    ...... 
} 

HBase와 서비스가 다운

의 HBase를을 여기 내 문제는 그 HttpClient를 타임 아웃 방식 재시도 밖으로 HBase와 시간 이전 인, 논리는 문제가 없습니다

NoServerForRegionException: Unable to find region for event,,99999999999999 after 10 tries. 

: 자바 API는 결국 시간이 초과 util을 HBase와 지역 서버에 연결 재 시도를 계속하고 RT 예외를 throw . 그런 다음 웹 서비스 API 사용자는 아무런 반응을 얻지 못합니다.

질문 -

잠재적으로 더 이상 HTTP 연결 자체보다 서버의 시간 제한이있는 경우 가장 좋은 방법은 여기에 무엇입니까? 이 경우 웹 서비스가 정상적으로 클라이언트에 응답하게하는 방법은 무엇입니까?

답변

1

스캔 대상물을 적당한 가격으로 설정하십시오. 또 다른 것은 웹 서비스를 사용하여 사용자에게 결과를 보여주기 때문에 한 번에 몇 개의 행 (또는 레코드) 만 표시해야한다고 가정합니다. Hbase PageFilter를 사용하여 매번 지정된 행만 가져오고 한 번에 모든 행을 가져올 때까지 기다릴 필요가 없습니다.