我有一个在生产上运行的服务,它使用以下方法调用依赖服务:
HTTP()。newHostConnectionPoolHttps [无极[的HttpResponse]]
每次部署新的依赖服务堆栈时,都会通过设置更新我的服务DNS缓存:
java.security.Security.setProperty(“networkaddress.cache.ttl”,“60”)
问题是池内的连接永远存在,并且只在启动时解析DNS一次。因此继续调用旧的依赖堆栈。
我正在寻找设置最大连接时间。
答案 0 :(得分:2)
Akka-http内置了此功能, 您可以在此reference config
中查看这些设置简而言之,您基本上必须将以下密钥放入您的配置中(最有可能是application.conf):
akka {
io {
dns {
inet-address {
# To set the time to cache name resolutions
# Possible values:
# default: sun.net.InetAddressCachePolicy.get() and getNegative()
# forever: cache forever
# never: no caching
# n [time unit]: positive timeout with unit, for example "30 s"
positive-ttl = 20s
negative-ttl = 10s
}
}
}
}
这基本上就是你所要做的。连接池TTL已设置为合理值,默认情况下您可以找到它们here。