【发布时间】:2016-08-18 19:22:26
【问题描述】:
我有一个 AWS MySQL 实例,我已将多可用区冗余设置为 True。我还有一个只读副本,将用于只读查询。我使用 C3P0 作为我的连接池。 AWS 为主实例和只读副本提供端点,但不为冗余主实例提供端点。我正在创建两个连接池,一个用于读取访问,一个用于写入访问。如果主服务器故障转移,我如何确保我的服务能够到达冗余主服务器?我阅读了有关设置 ttl 的信息,我将其设置为 30。但是,我重新启动了主机(并勾选了故障转移按钮),但在主机完成重新启动并重新联机之前,我的服务无法写入数据。我正在使用 Guice 将连接池注入到我的代码中。
【问题讨论】:
-
如果您勾选了故障转移框,那么主服务器永远不会“重新上线”。 master成为standby,standby升为master。 DNS 将切换,以便您用于连接到主服务器的地址将切换到新的主服务器(旧的备用服务器)。
-
你说得对,我用错了术语。如何在我的代码中检测到 DNS 的这个开关?我设置 java.security.Security.setProperty("networkaddress.cache.ttl", "10");正如 AWS 文档中提到的(他们说 60 秒,但我在 10 秒时尝试过)
-
这就是你需要做的。
标签: java mysql amazon-web-services