我正在将Amazon RDS用于我的数据库服务,并希望使用只读副本功能在我的只读副本卷之间分配流量。我目前将我的数据库的连接信息存储在一个配置文件中。所以我的想法是,我可以在我的应用程序执行读取的任何时候创建一个从我的配置文件中的读取副本端点/地址列表中随机选择的函数。
只要我不在写作时执行此操作,这个想法是否有问题?
答案 0 :(得分:1)
我的猜测是,如果你的服务有足够的流量,你有多个rds读取副本,你想要平衡负载,那么你前面还有多个应用服务器在负载均衡器后面运行。 / p>
因此,最好让某些应用服务器实例群集指向特定的只读副本。也许你是按可用区来做的。
这里的想法是,您的负载均衡器将作为正确分发最终导致数据库读取的传入请求的机制。如果您在不同副本中随机访问数据库,则可能会出现意外峰值,其中过多的流量会被定向到一个数据库副本,从而导致服务的延迟时间增加。
答案 1 :(得分:0)
最大的挑战是无法保证只读主副本在更新时与主服务器保持最新或相互保持最新状态。如果每次执行读取时选择不同的只读副本,如果其中一个只读副本落后,就会看到一些奇怪的内容:N次读取中的一次将获得过时的数据,从而给出系统的不一致视图。
从一致性角度来看,为每个事务或会话选择一个随机读取副本可能更容易处理。