postgresql - 使用 AWS Aurora PostgreSQL 数据库集群连接到哪个终端节点进行读/写操作
问题描述
我有一个使用 Aurora PostgreSQL 集群的应用程序(AWS API Gateway)。
集群有 1 个读/写(主要)和一个读取器端点。
目前,我的应用程序连接到所有操作的特定编写器实例:rds-instance-1.xxx.ap-southeast-2.rds.amazonaws.com
但我有以下可用端点:
rds.cluster-xxx.ap-southeast-2.rds.amazonaws.com
rds.cluster-ro-xxx.ap-southeast-2.rds.amazonaws.com
rds-instance-1.xxx.ap-southeast-2.rds.amazonaws.com
rds-instance-1-ap-southeast-2c.xxx.ap-southeast-2.rds.amazonaws.com
如果我正在执行读写操作,我是否应该连接到我正在使用的实例端点?或者我应该使用 rds.cluster-xxx.ap-southeast-2.rds.amazonaws.com 吗?使用不同的端点有什么好处?我知道,如果我连接到只读端点,我只能进行读取,但是对于读/写,连接到有什么区别:
rds.cluster-xxx.ap-southeast-2.rds.amazonaws.com
或者
rds-instance-1.xxx.ap-southeast-2.rds.amazonaws.com
?
什么是用于一般工作负载的正确/最佳端点,为什么?
解决方案
您应该使用集群读取器/写入器端点。
rds.cluster-xxx.ap-southeast-2.rds.amazonaws.com
rds.cluster-ro-xxx.ap-southeast-2.rds.amazonaws.com
使用集群端点的主要好处是,如果由于某种原因发生故障转移,您将不必担心端点,并且可以预期服务中断最小。
或者,如果您有 3 个只读副本,那么您将如何连接阅读器?所以最好使用集群读写器端点。
使用阅读器端点
您将读取器终端节点用于 Aurora 集群的只读连接。此端点使用负载平衡机制来帮助您的集群处理查询密集型工作负载。读取器端点是您提供给在集群上执行报告或其他只读操作的应用程序的端点。
使用集群端点
当您管理集群、执行提取、转换、加载 (ETL) 操作或开发和测试应用程序时,您会使用集群终端节点。集群终端节点连接到集群的主实例。主实例是唯一可以在其中创建表和索引、运行 INSERT 语句以及执行其他 DDL 和 DML 操作的数据库实例。
实例端点
实例终端节点提供对与数据库集群的连接的直接控制,适用于可能不适合使用集群终端节点或读取器终端节点的场景。例如,您的客户端应用程序可能需要根据工作负载类型进行更细粒度的负载平衡。在这种情况下,您可以配置多个客户端连接到数据库集群中的不同 Aurora 副本,以分配读取工作负载。有关在 Aurora PostgreSQL 故障转移后使用实例终端节点提高连接速度的示例
您可以查看更多详细信息AWS RDS 终端节点
推荐阅读
- vb.net - 有没有办法制作一个可以被字符串调用的方法?
- android - 按返回按钮时崩溃 - Android
- python - 左侧 (LHS) 和右侧 (RHS) 实体在 Git 和 (Git-Python) 中的含义
- python - python - 如何为python中的每个类别按月创建多个图表?
- c# - 所需的防伪表单字段“__RequestVerificationToken”不存在 部分视图帖子上的错误
- php - 在 iis 8.5 服务器上托管 Codeigniter 3 应用程序时,仅加载默认控制器索引功能
- excel - 如果为空,则向单元格添加突出显示
- moodle - 如何在moodle-3.7 中创建自定义注册插件?
- javascript - 如何使用 PHP 从 HTML 运行 Python 文件
- c++ - 如何在 Visual Studio 代码分析中获取有关未检查函数返回值的警告?