PolarDB集群的连接地址(又称为Endpoint)分为主地址、集群地址(又称为默认集群地址)和自定义地址三种类型。其中,默认集群地址和自定义地址都是通过数据库代理来实现的,即这两类地址的请求是经过代理节点,而主地址的请求不经过代理节点。在连接PolarDB集群时,您可以填写PolarDB集群的上述三种地址,推荐使用默认集群地址。本文将分别介绍这三种地址的作用和区别。
集群地址和主地址对比说明
地址类型 | 地址说明 | 适用场景 | 支持的网络类型 |
默认集群地址(推荐) | 创建PolarDB集群时,每个集群会有1个默认集群地址。该地址的服务由数据库代理提供。 默认集群地址支持自动读写分离,即写请求路由到主节点,读请求路由到只读节点。关于数据库代理的说明,请参见数据库代理。 | 适用于有读写分离需求的业务,并且能够通过增加只读节点实现快速、实时的业务扩展。 |
|
自定义地址 | 一个PolarDB集群最多可以再创建6个自定义地址。这些地址的服务也由数据库代理提供。
说明 PolarDB支持创建单节点的自定义地址。若此节点故障,该集群地址可能会有最多1小时的不可用,请勿用于生产环境。 | 通过自定义地址可以实现不同业务对DB节点访问的隔离需求。如上图只读节点5异常只会影响业务Z,不会影响其他业务。 通过配置读写模式为只读可实现该地址只支持纯只读的业务。 | |
主地址 | 每个PolarDB集群均支持且仅支持1个主地址。主地址有以下特点:
| 适用于不需要读写分离的业务。 |
私网、公网和经典网络地址
网络类型 | 说明 | 使用场景 |
私网 |
| 例如:
|
公网 |
| 例如:通过公网访问数据库集群进行维护操作。 |
经典网络 | 只有当业务处于经典网络中时,才能通过私网地址(经典网络)访问数据库集群。 |
集群地址的读写模式
集群地址支持可读可写(自动读写分离)和只读两种读写模式,下表汇总了两种模式下集群地址的差异供您参考。
设置集群地址读写模式的详细步骤,请参见配置数据库代理。
对比项 | 可读可写(自动读写分离) | 只读 |
服务节点选择方式 | 支持如下3种方式:
说明 可读可写模式下:
| 仅支持如下1种方式:
说明 只读模式下:
|
负载均衡策略 | 支持基于活跃请求数负载均衡策略。 更多详情,请参见负载均衡策略。 | 支持基于连接数负载均衡和基于活跃请求数负载均衡策略。 更多详情,请参见负载均衡策略。 |
主库是否接受读 | 支持。 更多详情,请参见读写分离。 | 该功能是为了降低主节点负载,只读地址的主节点不处理任何读写请求,因此无需该功能。 |
事务拆分 | 支持。 更多详情,请参见事务拆分。 说明 仅当一致性级别为会话一致性(中)或全局一致性(强)时,支持该配置。 | 该功能是为了降低主节点负载,只读地址的主节点不处理任何读写请求,因此无需该功能。 |
一致性级别 | 支持最终一致性(弱)、会话一致性(中)和全局一致性(强)。 更多详情,请参见一致性级别。 | 最终一致性(弱),因为该地址不执行任何写操作。 |
连接池 | 支持会话级和事务级连接池。 更多详情,请参见连接池。 说明
| 不支持。 说明 PolarDB会在只读集群地址下配置的所有只读节点(主节点不参与连接分配)间均衡地分配连接,一个客户端连接会通过Proxy仅连接到一个只读节点,可用的业务连接总数是所有只读节点上的连接数之和。 |
安全防护 | 支持。 更多详情,请参见过载保护。 | 不支持。 |