博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RestTemplate优化
阅读量:3711 次
发布时间:2019-05-21

本文共 2165 字,大约阅读时间需要 7 分钟。

RestTemplateConfig

package com.newland.iot.config;import org.apache.http.client.HttpClient;import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy;import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.impl.client.HttpClients;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.client.ClientHttpRequestFactory;import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;import org.springframework.web.client.RestTemplate;import java.util.concurrent.TimeUnit;@Configurationpublic class RestTemplateConfig {	@Bean	@LoadBalanced	public RestTemplate restTemplate() {		RestTemplate restTemplate = new RestTemplate(RestTemplateConfig.newClientHttpRequestFactory());	return restTemplate;	}	/**	 * 自定义RestTemplate配置	 * 1、设置最大连接数	 * 2、设置路由并发数	 * 3、设置重试次数	 * @author Hux	 * @return	 */	public static ClientHttpRequestFactory newClientHttpRequestFactory() {				// 长连接保持时长30秒		PoolingHttpClientConnectionManager pollingConnectionManager = new PoolingHttpClientConnectionManager(				30, TimeUnit.SECONDS);		// 最大连接数		pollingConnectionManager.setMaxTotal(3000);		// 单路由的并发数		pollingConnectionManager.setDefaultMaxPerRoute(100);		HttpClientBuilder httpClientBuilder = HttpClients.custom();		httpClientBuilder.setConnectionManager(pollingConnectionManager);		// 重试次数2次,并开启		httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(2,				true));		// 保持长连接配置,需要在头添加Keep-Alive		httpClientBuilder				.setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy());		HttpClient httpClient = httpClientBuilder.build();		// httpClient连接底层配置clientHttpRequestFactory		HttpComponentsClientHttpRequestFactory clientHttpRequestFactory =		new HttpComponentsClientHttpRequestFactory(httpClient);		clientHttpRequestFactory.setReadTimeout(5000);// ms		clientHttpRequestFactory.setConnectTimeout(15000);//		return clientHttpRequestFactory;	}}

转载地址:http://ppsjn.baihongyu.com/

你可能感兴趣的文章
图转树,边化点
查看>>
SZU寒训day1
查看>>
KMP算法
查看>>
寒训day9 初等数论
查看>>
寒训day5 图的存储 & SEARCH & 最短路
查看>>
react native
查看>>
c++输入输出
查看>>
头文件写法
查看>>
multimap
查看>>
主席树
查看>>
LCA
查看>>
Py日记(python零起步
查看>>
牛顿迭代法
查看>>
同时推送代码至github和gitee
查看>>
转载了一篇关于递归的好文章
查看>>
各种二叉树(递归)
查看>>
给虚拟机的Ubuntu换阿里源
查看>>
解决WSL修改不了字体的方法
查看>>
解决笔记本连接wifi提示无法连接这个网络问题
查看>>
Ubuntu18.04安装
查看>>