Spring Boot 和 AWS RDS 只读副本



在这里,我试图在AWS RDS中实现以下目标。我有一个正在运行的 MySQL 数据库实例。我正在考虑创建一个只读副本,以便我将拥有一些额外的负载共享功能。

我有一个在 EC2 上运行的 Spring 启动应用程序。目前,我连接到数据库的方式是在 application.yml 中添加以下属性:

datasource:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://DB_HOSTNAME:3306/DB_DATABASE?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC
username: DB_USERNAME
password: DB_PASSWORD

我的问题是:

  • 如果我创建只读副本,是否需要编写一些特殊代码来连接到它?
  • 我是否需要多个连接池,每个数据库实例一个连接池?
  • 从代码的角度来看,这如何扩展,如果我有 5 个只读副本,如何在代码中管理它?
  • 如何将数据库调用定向到不同的副本?这一决定的依据是什么?

如果有任何链接/视频/文档,您可以指出我。Spring 启动不是必需的,我需要了解从 Java 应用程序利用只读副本的好方法是什么。

谢谢

如果我们使用spring-cloud-aws-jdbc然后

要点 1如何连接主副本和只读副本实例

cloud.aws.rds.<DB-Instance-ID>.username=admin1
cloud.aws.rds.<DB-Instance-ID>.password=Admin123
cloud.aws.rds.<DB-Instance-ID>.databaseName=employee
cloud.aws.rds.employee-db.readReplicaSupport=true

要点 2

无需定义单独的连接池

要点 3

Spring Cloud AWS 将搜索为 master 数据库创建的任何只读副本,并将只读事务路由到其中一个可用的只读副本

要点 4

您可以通过以下方式重定向读取事务

@Transactional(readOnly = true)

您可以在此处找到工作示例和详细解释

相关内容

  • 没有找到相关文章

最新更新