4

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

我有一个在 EC2 上运行的 Spring Boot 应用程序。目前我连接到数据库的方式是在 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 boot 不是必需品,我需要了解什么是利用 Java 应用程序中的只读副本的好方法。

谢谢

4

1 回答 1

0

Spring Cloud 通过“spring-cloud-aws-jdbc”提供了直接为 RDS 实例配置只读副本的支持。文档中提供了更多信息https://cloud.spring.io/spring-cloud-aws/2.1.x/single/spring-cloud-aws.html#_data_access_with_jdbc

于 2020-10-09T21:35:37.600 回答