AWS ECS 中的数据库连接扩展:处理容器化 Spring Boot 应用程序中增加的负载

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

我有一个 user_service 应用程序,它使用以下配置连接到 MySQL 数据库:

datasource:
  url: jdbc:mysql://localhost:3306/user_serviceDB
  username: root
  password: ****
  driver-class-name: com.mysql.jdbc.Driver
jpa:
  hibernate:
  ddl-auto: update
  show-sql: true

我已将此应用程序容器化并将其部署在 AWS 上。当负载增加时,AWS ECS 通过创建新容器自动启动服务的新实例。在这种情况下,数据库连接会发生什么情况?是否为每个新实例创建新的数据库连接,这些实例是否连接到单独的数据库实例,或者它们都连接到同一个数据库?

database amazon-web-services microservices database-connection amazon-ecs
1个回答
0
投票

如果您的数据库与您的应用程序在同一个容器中运行(从您的配置中指定的本地主机判断),我相信在扩展过程中创建的每个新容器也将启动一个新的、单独的数据库实例。

另一方面,如果您的数据库托管在容器外部,例如在 AWS RDSEC2 实例中,则所有容器都可以连接到同一数据库。但在这种情况下,当前 URL (localhost) 将不起作用,因为 localhost 指向容器本身,而不是外部数据库。

您需要更新数据库 URL 以指向数据库的主机名或终端节点,例如 AWS RDS 提供的主机名或终端节点。

对于生产环境,我强烈建议将数据库与应用程序解耦并将其托管在外部。这确保了一致性、可扩展性和更轻松的管理,因为所有容器都连接到同一个集中式数据库而不是孤立的实例。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.