故障转移后到数据库的连接问题

liwlm1x9  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(491)

我们在aws beanstalk中有一个tomcat服务器集群,连接到aws rds(mysql),具有多可用性。
几天前,rds示例在操作系统上应用了一个补丁,该补丁基于多可用性触发了到另一个rds示例的故障转移。
结果是生产系统在几个小时内(在晚上)停机,直到我们在每个示例中重新启动tomcats。我们有成千上万的 Connection refused 数据库出错。
根据aws支持,当一个故障转移示例启动时,端点是相同的,但是它的ip发生了变化,我的tomcats缓存了旧的ip。因此,在重新启动tomcat之后,缓存被清除,新的ip被使用,连接问题被解决。他们让我提这个问题。
这是很有意义的,但是我无法在生产中使用相同的应用程序在受控测试中重现这个问题。
我更改了/etc/hosts中某个域的ip,并且我当前的beanstalk产品tomcat在30秒后检测到了ip更改,因此它应该也检测到了rds端点ip更改。
我的beanstalk环境中的java ttl属性设置为: #networkaddress.cache.ttl=-1 所以,默认情况下,它需要30秒作为缓存,这与我的实验相符。
[编辑]正如评论中所建议的,我尝试通过dns模拟故障转移。在本例中,我将cname记录从一个域更改为另一个域。我做了同样的测试,30秒后tomcat再次检测到了变化。
您知道为什么在这种情况下,tomcat/jvm没有检测到rds端点ip更改吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题