04_2连接池 从连接池获取连接超时, 连接池新建tcp连接超市

有了连接池之后,获取连接是从连接池获取,没有足够连接时连接池会创建连接。这时,获取连接操作往往有两个超时时间:
一个是从连接池获取连接的最长等待时间,通常叫作请求超时connectRequestTimeout或等待超时connectWaitTimeout;
一个是连接池新建TCP
连接三次握手的连接超时,通常叫作连接超时connectTimeout。

针对JedisPool、Apache HttpClient和Hikari数据库连接池,你知道如何设置这2个参数吗?

假设我们希望设置连接超时5s,获取连接超时10s:
hikari两个参数设置方式:
spring.datasource.hikari.connection-timeout=10000
spring.datasource.url=jdbc:mysql://localhost:6657/common_mistakes?connectTimeout=5000&characterEncoding=UTF-
8&useSSL=false&rewriteBatchedStatements=true
jedis两个参数设置:
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxWaitMillis(10000);
try (JedisPool jedisPool = new JedisPool(config, "127.0.0.1", 6379, 5000);
Jedis jedis = jedisPool.getResource()) {
return jedis.set("test", "test");
}
httpclient两个参数设置:
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000)
.setConnectionRequestTimeout(10000)
.build();
HttpGet httpGet = new HttpGet("http://127.0.0.1:45678/twotimeoutconfig/test");
httpGet.setConfig(requestConfig);
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {...

你可能感兴趣的:(Java开发常见错误)