我需要为在Tomcat 8中运行的Amazon Elastic Beanstalk应用程序设置Java的DNS缓存TTL(networkaddress.cache.ttl)。因为EB可以随时启动和停止服务器示例,所以我不能简单地编辑Tomcat配置文件和服务器并期望更改持续存在。
我试着设置networkaddress.cache.ttl和sun.net.inetaddr.ttl环境变量,但是没有效果。Amazon说调用java.security.Security.setProperty("networkaddress.cache.ttl" , "60");
“如果你在Tomcat中运行你的应用程序将不起作用”(http://aws.amazon.com/articles/4035)。设置TTL的好方法是什么?
3条答案
按热度按时间vsdwdz231#
问题是我做错了。设置sun.net.inetaddr.ttl环境变量是有效的。你可以在你的Elastic Beakstalk配置文件中这样做:
60秒的值为recommended by Amazon
另一个对我来说更好的选择是创建和使用java.security文件:
d5vmydt92#
如果您使用的是spring framework,下面是我在应用程序初始化时设置
networkaddress.cache.ttl
的方法。1.定义新的Java类,如下所示。
1.在创建spring容器时,要求spring framework将上述类的对象示例化为单例。
nbnkbykc3#
如果您使用的是Sping Boot ,则可以定义 @Configuration