저지 클라이언트를 사용하여 타사 웹 서비스에 POST 요청을 보냅니다. 저지 클라이언트를 생성하는 것이 비용이 많이 들기 때문에 Spring에서 관리하는 서비스 클라이언트 클래스의 생성자에서이 작업을 수행합니다. 내 생각에 내 서버가 시작되면 Spring은 내 서비스 클라이언트 빈을 생성 할 것이고, 그러면 차례대로 생성자가 호출되어 저어지 클라이언트가 한 번 생성 될 것이다. 서버가 작동하는 한,이 저지 클라이언트는 요청을 전송할 책임이 있으며 더 이상의 클라이언트 초기화는 필요하지 않습니다. 그러나 저지 웹 리소스를 만드는 것이 훨씬 저렴하기 때문에 각 호출에 대해 새로운 웹 리소스를 작성하게 될 것입니다.스프링 관리 빈 생성자에서 저지 클라이언트 초기화
<bean id="myClient" class="com.mypackage,MyWebserviceClient"></bean>
빈 (bean) myClient
는 다음 서비스를 호출 할 필요가 적절한 위치에 주입됩니다
package com.mypackage;
//Bunch of imports
class MyWebserviceClient {
//jersey client member variable
private Client jClient;
public MyWebserviceClient(){
//Create jersey client
jClient = Client.create();
//Other stuff
}
public void sendRequest(){
WebResource wr = jClient.resource(someUrl);
//Use the webresource to make webservice call
}
}
MyWebserviceClient
는 봄 구성 XML에서와 같은 관리 봄입니다. 내 응용 프로그램이 시간당 수천 개의 요청을 처리하는 경우
내 질문에
1) 단 하나의 저지 클라이언트의 모든 요청을 처리 할 수있을만큼 효율적입니다.
2) 많은 수의 요청이보다 효율적으로 처리되도록 저지 클라이언트 풀이 필요합니까? 그렇다면 방법이 있습니까?
3) 일반적으로 최종 사용자가 들어오는 여러 요청이 서버 측에서 처리되는 방식을 알고 싶습니다. 각 요청은 서버에서 별도의 실행 스레드이며 모든 요청은 동일한 저지 클라이언트 객체에 대한 액세스 권한을가집니다. 저지 클라이언트 오브젝트가 이러한 요청 중 하나를 사용 중일 경우 다른 최종 사용자의 다른 요청이 진행중인 요청에 대한 응답을 수신 할 때까지 기다릴 것입니까?
4) 내가 사용하고있는 것보다 더 나은 대안.