sourcetip

RestClient를 싱글톤으로 하거나 모든 요청에 대해 새 인스턴스를 생성해야 합니다.

fileupload 2023. 8. 6. 10:17
반응형

RestClient를 싱글톤으로 하거나 모든 요청에 대해 새 인스턴스를 생성해야 합니다.

ASP.NetHttpClient일회용이며, 성능 때문에 싱글톤 패턴을 사용해야 한다는 기사가 많습니다.하지만 제가 봤을 때는RestClient폐기할 수 없으며, Recommended-Usage 페이지에서 샘플은newRestClient매회다음을 위해 싱글톤 패턴을 사용해야 합니까?RestClient아니면 제가new매번?내가 만약에new매번 성능 문제가 발생합니까?

레스트샤프 깃허브

일부 참조:

HttpClient 및 HttpClientHandler를 폐기해야 합니까?

당신은 HTTPCLIENT를 잘못 사용하고 있고 그것은 DESTAB입니다.소프트웨어 활용

Restclient 버전 < 107:

RestClient에 싱글톤 패턴을 사용해야 합니까? 아니면 매번 새로 만들어야 합니까? 매번 새로 만들면 성능에 문제가 있습니까?

권장 사용 방법RestSharp요청당 새 인스턴스를 만드는 것입니다.

권장되는 싱글턴 접근 방식과는 다릅니다.HttpClient그리고 그 이유는 후드 아래에 RestSharp사용하다HttpWebRequestHTTP 상호 작용의 경우, 그렇지 않습니다.HttpClient이것이 바로 사용 모델이 다른 이유입니다.

매번 생성하면 HttpClient와 마찬가지로 성능 문제가 발생합니까?

의 새 인스턴스를 생성하면 안 되는 주요 이유HttpClient각 요청은 성능 고려 사항이 아닙니다.생성 및 초기화에 소요되는 시간은 다음 네트워크 호출에 소요되는 시간의 극히 일부에 불과합니다.의 싱글톤 인스턴스를 사용하는 주요 이유HttpClient 는 다음과 같습니다.

HttpClient는 한 번 인스턴스화되고 응용 프로그램의 수명 동안 재사용됩니다.모든 요청에 대해 HttpClient 클래스를 인스턴스화하면 무거운 부하가 발생할 때 사용 가능한 소켓 수가 소진됩니다.그러면 SocketException 오류가 발생합니다.

RestSharp연결 풀을 다음과 같이 사용하지 않습니다.HttpClient사용 후 소켓을 열어 두지 않습니다.따라서 새 인스턴스를 생성하는 것이 안전합니다(권장).RestClient요구에 따라

의 재사용 인스턴스를 사용하면 성능이 향상됩니까?RestClient개체 생성 및 초기화 시간을 절약할 수 있습니다.하지만 이 시간은 매우 가깝습니다.0게다가 네트워크 통화를 추적하는 데 소요되는 시간의 극히 일부입니다.다른 것은 재사용하지 않습니다.다음과 같은 NET 개체List<T>성능에 대한 고려 때문이죠, 그렇죠?에 대해서도 동일한 작업을 수행해야 합니다.RestClient그것은 단지 그러한 사용 시나리오를 암시하는 방식으로 개발되었을 뿐입니다.

Restclient 버전 >= 107:

본전에서v107인스턴스를 하나만 생성해야 합니다.은 이버은다사다니합용을을 하고 있습니다.HttpClient

각 HTTP 호출에 대해 RestClient를 인스턴스화하지 마십시오.RestSharp는 내부적으로 HttpClient의 새 인스턴스를 생성하고 많은 연결이 중단되어 결국 연결 풀을 모두 사용하게 됩니다.

종속성 주입 컨테이너를 사용하는 경우 API 클라이언트를 싱글톤으로 등록합니다.

RestClient 라이프사이클

왜 그런지 궁금하다면 여기에서 설명을 볼 수 있습니다.

언급URL : https://stackoverflow.com/questions/49588205/should-restclient-be-singleton-or-create-new-instance-for-every-requests

반응형