Unverified Commit b555d0a0 authored by felix.wang's avatar felix.wang Committed by GitHub
Browse files

[Improvement][common] HttpClient singleton mode #3332 (#3350)

* Optimize the httpclient

* Optimize the httpclient singleton

* Merge branch 'github-local/dev' into feature/httpClientsingleton

# Conflicts:
#	dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HttpUtils.java
#	dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/HttpUtilsTest.java

* Merge branch 'github-local/dev' into feature/httpClientsingleton

# Conflicts:
#	dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HttpUtils.java
#	dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/HttpUtilsTest.java

* Merge branch 'github-local/dev' into feature/httpClientsingleton

# Conflicts:
#	dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HttpUtils.java
#	dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/HttpUtilsTest.java
parent a532d8ed
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -53,13 +53,19 @@ public class HttpUtils {

	public static final Logger logger = LoggerFactory.getLogger(HttpUtils.class);

	private HttpUtils() {

	private static CloseableHttpClient httpClient;
	}

	private HttpUtils() {
	public static CloseableHttpClient getInstance(){
		return HttpClientInstance.httpClient;
	}

	private static class HttpClientInstance{
		private static final CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm).setDefaultRequestConfig(requestConfig).build();
	}


	private static PoolingHttpClientConnectionManager cm;

	private static SSLContext ctx = null;
@@ -112,20 +118,14 @@ public class HttpUtils {
	}


	public static synchronized CloseableHttpClient getHttpClient() {
		if (null == httpClient) {
			httpClient = HttpClients.custom().setConnectionManager(cm).setDefaultRequestConfig(requestConfig).build();
			;
		}
		return httpClient;
	}

	/**
	 * get http request content
	 * @param url url
	 * @return http get request response content
	 */
	public static String get(String url){
		CloseableHttpClient httpclient = HttpUtils.getHttpClient();
		CloseableHttpClient httpclient = HttpUtils.getInstance();

		HttpGet httpget = new HttpGet(url);
		String responseContent = null;
+2 −2
Original line number Diff line number Diff line
@@ -46,8 +46,8 @@ public class HttpUtilsTest {

	@Test
	public void testGetHttpClient() {
		CloseableHttpClient httpClient1 = HttpUtils.getHttpClient();
		CloseableHttpClient httpClient2 = HttpUtils.getHttpClient();
		CloseableHttpClient httpClient1 = HttpUtils.getInstance();
		CloseableHttpClient httpClient2 = HttpUtils.getInstance();
		Assert.assertEquals(httpClient1, httpClient2);
	}
}