在 Spring Boot 中处理来自多个读取数据库副本的请求

问题描述 投票:0回答:1

我们有一个 Spring boot,该应用程序与 Postgres (AWS RDS) 通信。

我有 3 个 API,其中 2 个是 PUT,1 个是 GET。 GET 是高速 API,即 GET 的 QPS 与前两个 API 相比太高。

我们正在添加两个新的 Postgres 只读副本,它们将仅由 GET API 请求使用。PUT 将从主副本提供服务。

如何在 Spring boot 应用程序中管理 1 个主数据库和 2 个副本数据库的数据源? 另外,我们如何确保 GET 请求仅命中副本,同时在两个副本之间均匀分配负载。我们希望这也是面向未来的,即如果我们明天有新副本,那么它应该只是指定新副本数据源 url 的配置更改,并且 GET 现在应该在三个副本之间分配流量,无需任何更改。

在 Spring Boot 中实现这一目标的最佳策略是什么?

spring spring-boot amazon-rds database-replication
1个回答
0
投票

如果我没记错的话,RDS 将为您提供一个读/写 URL 和一个只读 URL。您将需要创建两个数据源,并适当地调用每个数据源(即使用只读数据源进行选择查询,使用读/写数据源进行插入/更新/删除查询)

© www.soinside.com 2019 - 2024. All rights reserved.