AWS Aurora 只读副本

AWS Aurora Read Replicas

在 EKS 的帮助下,我们在 AWS 中有几个微服务 运行。到目前为止,数据存储在本地的 Oracle 数据库中。我们在微服务和 Oracle 数据库之间有一个 Kafka 主题。

现在我们计划迁移到 AWS Aurora 数据库并将数据库也放在云中。到目前为止,我们的微服务(在 spring 启动时实现)没有任何云特定代码,这意味着 AWS SDK 集成。所以我们的代码库与云无关,我们计划保持这种状态。

现在我们计划编写一个将与 Aurora 交互的新微服务,因此任何其他服务,如果他们想要 read/write 数据到 Aurora,他们将调用这个新服务。

对于这个新的微服务,我们需要使用 AWS SDK 吗?如果我们只使用Aurora URL 进行数据操作,与使用AWS SDK 和使用Aurora API 处理数据storage/retrieval.

相比,是否会对性能产生影响?

我们计划拥有一个 Aurora 主数据库和 2 个只读副本。据我了解,写入操作将被重定向到主控,读取操作将被重定向到内部 LB 以供读取副本使用。

do we need to use it with AWS SDK

仅用于管理操作。您不能使用 AWS SDK 或 AWS API 从 Aurora 实际读取和写入数据(您只能使用 Data API 对 Aurora Serverless 执行此操作)。

If we just use Aurora URL for data operations

别无选择。您必须使用 Aurora 端点。

As I understand write operations will be redirected to master and read operations are redirected to internal LB for read replicas.

不会自动。您的写操作必须明确定向到编写器端点。这意味着在您的应用程序中,您必须在写入时使用写入端点,在您想要读取时使用 reader 端点。

副本的负载平衡器处于连接级别,而不是操作级别。但是,是的,每个到 reader 端点的连接都将转到一个随机副本。