Jersey 1.4, ApacheHttpClient
및 Apache MultiThreadedHttpConnectionManager
클래스를 사용하여 연결을 관리하고 있습니다. HttpConnectionManager
의 경우 staleCheckingEnabled를 true로 설정하고 maxConnectionsPerHost를 1000으로 설정하고 maxTotalConnections를 1000으로 설정합니다. 다른 모든 설정은 기본값입니다. Tomcat에서 실행 중이며 Jersey 클라이언트를 사용하여 여러 외부 호스트에 연결합니다.Jersey 클라이언트의 CLOSE_WAIT 소켓
짧은 시간 후에 Tomcat 프로세스와 관련된 CLOSE_WAIT 상태의 소켓을 보게됩니다. tcpdump를 사용한 일부 모니터링은 외부 호스트가 잠시 후 연결을 닫는 것처럼 보이지만 우리 쪽에서는 닫히지 않습니다. 보통 소켓 읽기 대기열에는 24 바이트의 데이터가 있습니다. 연결은 https를 사용하고 있으며 데이터가 암호화되어있는 것처럼 보입니다. 그래서 무엇인지 모르겠습니다.
생성 된 ClientRequest 객체가 닫혀 있는지 확인했습니다. CLOSE_WAIT의 소켓은 재활용 될 것으로 보이며 적어도 현재로서는 리소스가 부족합니다. 외부 서버에서 어떤 일이 일어나고 있는지 잘 모르겠습니다.
제 질문은 정상입니까? 걱정해야합니까?
감사합니다,
존
몇 가지 코드를 볼 수 있습니까? 방금이 소식을 들었고 MultiThreadedHttpConnectionManager를 저지로 구성하는 방법을보고 싶습니다. – markthegrea
죄송합니다. 코드를 게시 할 수 없습니다. –