本页面介绍了如何使用 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。
- 不支持对指向同一目标实例的端点执行并发修改操作(例如同时执行更新操作,或同时执行更新和删除操作),否则可能会导致失败。
准备工作
- 安装并初始化 Google Cloud CLI。
- 启用 Cloud DNS API。
- 确保您有现有的 AlloyDB 实例作为端点的目标。
如需获得管理端点所需的权限,请让您的管理员为您授予项目的 AlloyDB Admin (
roles/alloydb.admin) Identity and Access Management (IAM) 角色。此预定义角色包含管理端点所需的权限。您也可以使用自定义角色或其他预定义角色来获取这些权限。所需的具体权限包括:
alloydb.endpoints.createalloydb.endpoints.updatealloydb.endpoints.getalloydb.endpoints.listalloydb.endpoints.delete
如需了解详情,请参阅 AlloyDB IAM 角色和权限。
您可以使用 Google Cloud CLI 创建和管理写入端点。
创建端点
如需创建写入端点,请使用 Google Cloud CLI。端点类型必须为 WRITE_ENDPOINT,并且必须以单个主实例为目标。
控制台
在 Google Cloud 控制台中,前往端点页面。
点击创建端点。
在端点名称字段中,输入端点的 ID。 必须满足以下条件:由小写字母 (a-z)、数字和连字符组成,以小写字母开头,以小写字母或数字结尾。
选择区域。
对于端点类型,选择写入。
在目标实例字段中,选择此端点应指向的主实例。
点击创建。
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 名称。
控制台
在 Google Cloud 控制台中,前往端点页面。
找到要连接的端点,然后复制“DNS 名称”列中的值。
gcloud
使用
gcloud beta alloydb endpoints describe命令:gcloud beta alloydb endpoints describe ENDPOINT_ID \ --project=PROJECT_ID \ --region=REGION_ID替换以下内容:
ENDPOINT_ID:端点的 IDPROJECT_ID:您的 Google Cloud 项目 IDREGION_ID:端点所在区域的 ID
在命令输出中,找到
dnsName字段并复制其值。
使用 psql 进行连接
获得 DNS 名称后,您可以在连接字符串或客户端工具中将其用作主机。例如,如需使用 psql 客户端进行连接,请运行以下命令:
psql -h DNS_NAME -U USERNAME -d DATABASE_NAME
替换以下内容:
DNS_NAME:端点的 DNS 名称USERNAME:要连接的数据库用户DATABASE_NAME:要连接的数据库名称。
如需详细了解如何使用 psql,请参阅使用 psql 客户端进行连接。
更新端点
如需更改端点指向的实例(例如在恢复操作后),请使用以下命令:
控制台
在 Google Cloud 控制台中,前往端点页面。
在要更新的端点所在的行中,点击 操作,然后选择修改。
在目标实例字段中,选择此端点应指向的新主实例。
点击更新。
gcloud
gcloud beta alloydb endpoints update ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--target-instances=NEW_TARGET_INSTANCE_NAME
替换以下内容:
ENDPOINT_ID:要更新的端点的 IDPROJECT_ID:您的 Google Cloud 项目 IDREGION_ID:端点所在区域的 IDNEW_TARGET_INSTANCE_NAME:新目标实例的完整资源名称
列出端点
如需列出给定项目和区域中的所有端点,请使用以下命令:
控制台
在 Google Cloud 控制台中,前往端点页面。
该页面会列出当前项目中的所有端点。
gcloud
gcloud beta alloydb endpoints list --project=PROJECT_ID \
--region=REGION_ID
替换以下内容:
PROJECT_ID:您的 Google Cloud 项目 IDREGION_ID:端点所在区域的 ID
查看端点详情
如需查看特定端点的详细信息,请使用以下 Google Cloud CLI 命令:
gcloud
gcloud beta alloydb endpoints describe ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID
替换以下内容:
ENDPOINT_ID:要描述的端点的 IDPROJECT_ID:您的 Google Cloud 项目 IDREGION_ID:端点所在区域的 ID
在 Google Cloud 控制台中,您可以在端点页面上查看端点详细信息。
删除端点
如需删除端点,请使用以下命令:
控制台
在 Google Cloud 控制台中,前往端点页面。
在要删除的端点对应的行中,点击 操作,然后选择删除。
如要确认,请输入端点 ID,然后点击删除。
gcloud
gcloud beta alloydb endpoints delete ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID
替换以下内容:
ENDPOINT_ID:要删除的端点的 IDPROJECT_ID:您的 Google Cloud 项目 IDREGION_ID:端点所在区域的 ID
切换或跨区域故障切换期间的写入端点行为
虽然端点的 DNS 名称在创建时会解析为特定实例的 IP,但这些端点是动态的。在发生跨区域复制活动(例如切换或跨区域故障切换 [预览版])时,AlloyDB 写入端点可确保连接持续可用,无需手动干预。当次要集群升级为新的主集群时,端点会自动更新其 DNS 记录,以指向新的主实例。此行为无需手动重新配置应用连接字符串,可显著降低运营复杂性并最大限度地缩短停机时间,从而满足恢复时间目标 (RTO)。
操作和 DNS 传播完成后,您的应用可以使用相同的端点 DNS 名称重新连接到新的主实例。
防止在故障切换期间发生冲突的写入
在跨区域故障切换期间使用写入端点有助于防止写入冲突,因为该端点会自动将新的写入流量从原始主集群导向新的主集群。如需详细了解故障切换期间的写入端点行为,请参阅使用写入端点避免脑裂。
后续步骤
- 详细了解如何连接到 AlloyDB 实例。