使用写入端点管理数据库连接

本页面介绍了如何使用 AlloyDB for PostgreSQL 写入端点来简化应用的数据库连接管理。

端点是一种 AlloyDB 资源,可提供稳定的域名服务 (DNS) 名称,供应用用于连接到 AlloyDB 实例。通过使用端点,您可以将应用与实例的特定 IP 地址或统一资源标识符 (URI) 分离开来。这种抽象简化了运营事件(例如灾难恢复、备份恢复或迁移)期间的连接管理,因为您可以将端点的 DNS 名称重定向到其他实例,而无需更改应用的配置。

AlloyDB 端点支持 WRITE_ENDPOINT 类型。写入端点将流量定向到单个 AlloyDB 主实例,并处理读取和写入流量。

虽然 DNS 名称用作全球性资源,但端点资源本身是区域性的。即便如此,每个端点都可以全局链接到实例,并且其 DNS 名称可以从任何位置解析。

使用端点的好处

使用写入端点具有以下优势:

  • 简化灾难恢复:如果您执行切换跨区域故障切换到次要集群,AlloyDB 会自动更新端点以指向新的主实例。然后,您的应用可以使用相同的端点 DNS 名称重新连接,从而缩短恢复时间目标 (RTO)。
  • 无缝备份恢复:当您从备份恢复实例时,AlloyDB 会创建一个具有新 IP 地址的新实例。您可以更新端点,使其指向新恢复的实例。这样一来,应用无需更改配置即可恢复运行。
  • 更轻松的迁移:在迁移期间,您可以将端点从源数据库切换到 AlloyDB 实例,而对应用的影响极小。

限制

  • 端点仅支持配置为使用专用服务访问通道 (PSA) 的实例。端点不支持配置为使用 Private Service Connect (PSC) 的实例。
  • 写入端点不支持 AlloyDB 语言连接器和 AlloyDB Auth Proxy。
  • 不支持对指向同一目标实例的端点执行并发修改操作(例如同时执行更新操作,或同时执行更新和删除操作),否则可能会导致失败。

准备工作

  1. 安装并初始化 Google Cloud CLI。
  2. 启用 Cloud DNS API。
  3. 确保您有现有的 AlloyDB 实例作为端点的目标。
  4. 如需获得管理端点所需的权限,请让您的管理员为您授予项目的 AlloyDB Admin (roles/alloydb.admin) Identity and Access Management (IAM) 角色。此预定义角色包含管理端点所需的权限。

    您也可以使用自定义角色或其他预定义角色来获取这些权限。所需的具体权限包括:

    • alloydb.endpoints.create
    • alloydb.endpoints.update
    • alloydb.endpoints.get
    • alloydb.endpoints.list
    • alloydb.endpoints.delete

如需了解详情,请参阅 AlloyDB IAM 角色和权限

您可以使用 Google Cloud CLI 创建和管理写入端点。

创建端点

如需创建写入端点,请使用 Google Cloud CLI。端点类型必须为 WRITE_ENDPOINT,并且必须以单个主实例为目标。

控制台

  1. 在 Google Cloud 控制台中,前往端点页面。

    转至 Endpoints

  2. 点击创建端点

  3. 端点名称字段中,输入端点的 ID。 必须满足以下条件:由小写字母 (a-z)、数字和连字符组成,以小写字母开头,以小写字母或数字结尾。

  4. 选择区域

  5. 对于端点类型,选择写入

  6. 目标实例字段中,选择此端点应指向的主实例。

  7. 点击创建

gcloud

gcloud beta alloydb endpoints create ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --endpoint-type=ENDPOINT_TYPE \
    --target-instances=TARGET_INSTANCE_NAME

替换以下内容:

  • ENDPOINT_ID:端点的唯一标识符。此 ID 在指定项目和位置中必须是唯一的。
  • PROJECT_ID:您的 Google Cloud 项目 ID。
  • REGION_ID:您要创建端点的区域的 ID,例如 us-central1
  • ENDPOINT_TYPE:端点资源的类型。 仅支持 WRITE_ENDPOINT
  • TARGET_INSTANCE_NAME:端点指向的 AlloyDB for PostgreSQL 实例的完整资源名称。实例的完整资源路径采用以下格式:projects/$PROJECT/locations/$LOCATION/clusters/$CLUSTER/instances/$INSTANCE

使用端点连接到实例

如需使用端点连接到 AlloyDB 实例,您必须先获取与该端点关联的自动生成的 DNS 名称。

获取 DNS 名称

您可以使用 Google Cloud CLI 查看端点的 DNS 名称。

控制台