2016-08-18 66 views
0

我有一个AWS MySQL实例,我已在其上将多可用区冗余设置为True。我还有一个只读副本,用于只读查询。我正在使用C3P0作为我的连接池。 AWS为主实例和读副本提供端点,但不提供冗余主服务器的端点。我正在创建两个连接池,一个用于读取访问,另一个用于写入访问。如果主服务器故障恢复,我如何确保服务能够到达冗余主服务器?我读过有关设置ttl的信息,我将其设置为30.但是,我重新启动了主服务器(并勾选了故障转移按钮),但是我的服务无法写入数据,直到主服务器重新启动并重新联机为止。我正在使用Guice将连接池注入我的代码中。如何故障转移到Java中的AWS RDS MySQL副本

+0

如果勾选了故障转移框,那么主服务器从不“重新联机”。主人成为待命人,待命人晋升为主人。 DNS将会切换,以便您用于连接到主服务器的地址将切换到新主服务器(旧备用服务器)。 –

+0

你是对的,我用了错误的术语。如何在我的代码中检测DNS的这个开关?我设置了java.security.Security.setProperty(“networkaddress.cache.ttl”,“10”);正如AWS文档中提到的那样(他们说60秒,但我在10点尝试) – Mark

+0

这应该就是你需要做的。 –

回答

0

我能够使故障转移工作。 (它实际上工作,我只是没有等待足够长的时间才能看到它发生)。我有一些设置得太高的C3P0设置,导致C3P0看不到连接失败。