1

我有 dotNet 核心应用程序,它是在伦敦 AWS 区域配置的 MySQL RDS 数据库,供英国用户使用。

我现在有来自澳大利亚的用户在使用英国应用程序时遇到性能缓慢的问题。

我想提高这些用户的性能,并考虑创建数据库的只读副本,因为 90% 的数据库活动都是读取的。

应用程序如何知道是使用 Sydney Read only 副本还是 London Read/Write ?它是否以某种方式检测到用户在悉尼并将他们引导到最近的?或者我是否还需要在那里启动我的应用程序版本才能正常工作?

4

1 回答 1

1

我在此类用例上进行了大量工作。您始终可以使用 Route53 将用户重定向到任何特定端点。我假设您的用户没有直接与数据库交互。他们将达到某个应用程序的终点。对于您的场景;您还必须在澳大利亚托管您的应用程序(连同只读副本)。现在,在读取查询的应用程序中,您将连接到只读副本;而对于写入查询,您的应用程序将写入英国数据库。而应用程序部署在英国服务器上;将为两者使用相同的英国服务器。所有这些都是使用具有数据库 URL 的属性文件来实现的。并且您使用不同的属性文件部署在不同的位置。该属性文件将具有以下内容:

    For UK: 
readQueries=uk.mysql.master 
writeQueries=uk.mysql.master 

    For Australia:
 readQueries=aus.mysql.read 
writeQueries=uk.mysql.master

我会建议您将此问题的标题更改为更好地说明确切问题的名称。现在的标题更像是一个标签。

于 2020-11-09T17:50:34.500 回答