본문 바로가기
개발&IT

OKHttp Client 단점

 

Apache HttpClient를 사용하다가 OkHttp의 jar가 적고 사용하기가 쉬어 okhttp를 사용하기로 하였다.

안드로이드에서 이미 많이 사용하고 있기에 믿음직한 open source라 판단하였다.

 

첫 소감은 확실히 너무 사용하기 쉬웠다.

 

난 OKhttp client를 서버용으로 많이 사용하였다.

다른 웹사이트에 접속하고, 우리 내부 서버에 접속하는 등 서버 위주로 사용하였다.

즉 사용빈도수가 상당히 많은 작업에 사용하였다.

 

 

몇 개월 사용하다 보니 심각한 문제점이 발생하였다.

 

1.  유저가 튜닝할 수 있는 포인트가 너무 작다. 

    OKHttp를 처음 사용할 때부터 겪은 내용이다.  사용하기 쉽게 만들다보니 튜닝 포인트 찾기 힘든거 이해했다.

    메모리 및 url 동시 접속 제한 등이 있다. 이 것을 소스 하나 하나 보면서 튜닝할 포인트를 찾아야 한다.
    None Heap 메모리도 사용하는데 해지할 방법이 없네.

 

2. Apache HttpClient로는 접속이 되는데 okhttp로는 접속이 안된다.
    예를 들면 google에 로그인 성공하고 google 서비스를 1년 넘게 문제 없었는데 갑자기 안 된다.
     Apache HttpClient는 여전히 잘 된다.

3. DNS를 찾지 못한다.
    HostNotFound? Exception이 발생한다.
    아마존의 로드밸랜스 DNS 주소로 몇 개월동안 잘 사용하였다.  어느날 갑자기 로드밸런스의 DNS를 못 찾는다고          에러가 발생하였다. 재부팅 하니 DNS주소를 사용할 수 있게 되었다.그러다 다시 또 안 된다.
    결국 로드밸런드 못 쓰고 결국 IP로 접속해 사용하고 있다.  

 

Okhttp를 사용할 때 1여년동안은 1번 3번 이슈는 그럭저럭 넘어갔다.

3번 문제는 서비스중인 서버 죽이고 ip로 셋팅하고 재시작하면 해결된다. 

2번 문제는 차원이 다르다. 코드를 완전히 새로 짜야 한다. 서비스를 중단하고 코드 새로 짜서 올려야 한다. 
소스 고치는데 운 좋으면 1-2시간. 아니면... 음.

 

핵심 서비스에 문제가 생기고 코드 변경하는동안 서비스를 중단하라는건 회사를 접어야 하는 상황이다.

 

참고로 OKHttpClient version는 3.x 마지막 버전이고  온라인 서비스하는 서버에 사용하였다. 

'개발&IT' 카테고리의 다른 글

parsing된 xml를 다시 xml 원복하기  (0) 2020.04.17
groovy xml element 삭제  (0) 2020.04.17
OKHttp Client 단점  (0) 2020.01.20
워드프레스를 포기하다  (0) 2019.12.23
groovy에서 json를 bean에 입력하기  (0) 2019.12.21