我目前在悉尼,我有以下情况:
我需要这个冗余,这是一个简化的场景。
当我在悉尼EC2上的应用程序连接到N. Virgnia的RDS时,给我的结果几乎需要2.5秒。我们可以这样想:好的,这就是延迟。
但是,当我将请求发送到EC2 N. Virginia时,我得到的结果不到500 in。
当您从区域外访问RDS时,为什么会有缓慢的连接?
我的意思是:当我在我的电脑上运行应用程序时,我也可以体验到这种缓慢的连接。但是,当应用程序位于与RDS相同的区域时,在我自己的计算机上工作得更快。
发布于 2018-07-01 14:59:06
很可能需要多次往返才能完成对RDS的请求。也就是说,您的EC2实例首先向RDS请求一些东西,然后根据第一个请求请求其他一些东西。如果没有看到您的数据库代码,很难确切地说明原因是什么。
然后,当您与远程EC2实例交谈时,您将得到不到500 ms的响应。这意味着设置TCP连接并发送一个带有应答的请求是500毫秒。基于此,我猜想数据库连接至少需要5倍的来回通信量。
RDS对于在区域外使用RDS没有额外的惩罚,但大多数数据库协议都没有针对高延迟条件进行优化。你最好在悉尼建立一个read复制品。
发布于 2018-07-05 07:41:35
如果您正在尝试使用面向公共的网络连接RDS,那么它可能会很慢。AWS启动跨区域VPC窥视,请对等所有地区的VPC (确保不会出现任何IP冲突),并尝试使用私有连接进行连接。
https://stackoverflow.com/questions/51123689
复制相似问题