我们计划将我们的Tomcat/MySQL应用程序移动到亚马逊云上,使用运行在不同可用性区域中的2个EC2实例(inst_1 & inst_2),其中inst_1将包含主RDS,inst_2将包含从RDS db。
如果我们使用弹性负载平衡来平衡两个实例之间的通信量,那么指向inst_2 (包括insert/update/delete db事务)的流量是否会首先在inst_1中更新主RDS db,然后在inst_2中对从服务器进行同步更新;从而确保两个RDS实例始终是同步的?
亚马逊发布的信息(白皮书)表明了这一点,但并没有明确说明。如果不是,如何确保两个RDS实例保持同步?
补充说明:,我们计划使用亚马逊的弹性豆茎。谢谢!
发布于 2012-11-23 08:56:46
你得考虑几件事
这意味着您必须将操作查询委托给主服务器。
这可以由您的应用程序完成,也可以由运行在额外机器上的MySQL代理来完成。
因此,代理是应用程序服务器将与之通信的唯一接口。它能够管理RDS实例与对主实例的任何操作查询方向之间的平衡。
发布于 2012-11-23 20:46:24
当RDS在多-az模式下使用时,您无法访问次要实例。只有一个实例对你是可见的,所以大多数情况下,如果你的问题不适用。如果出现故障转移,则给出的DNS地址将开始解析到不同的ip。Amazon没有透露这两个实例是如何保持同步的。
如果您没有使用多个az实例,而是使用一个单az实例+一个副本,那么应该由您适当地指导查询--任何更改副本上数据的尝试都将失败。因为这只是标准的MySQL复制,所以副本可能落后于主复制(特别是对于当前版本的MySQL,副本只运行一个线程)。
https://stackoverflow.com/questions/13518764
复制相似问题