开通RDS MySQL数据库代理后,因实际业务需要,您可能需要调整开通代理时默认的代理连接地址访问策略(原配置代理终端)。本文为您介绍代理连接地址访问策略各配置项的含义及配置方法。
前提条件
配置代理连接地址访问策略
您可以通过使用不同代理连接地址ID绑定的内、外网地址来访问RDS MySQL数据库实例,以实现不同的业务逻辑。
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏,单击数据库代理。
在连接信息区域,在目标代理连接地址右侧,单击修改配置。
在弹出的对话框中,根据业务需要修改代理连接地址的访问策略。具体配置项说明如下表所示。
配置项
说明
连接描述
自定义代理连接地址的描述,最多支持30个字符。
连接地址网络及可用区
代理的可用区及交换机信息。
读写属性
设置当前代理连接地址(代理终端)的读写属性:
读写(读写分离)(默认):同时连接主实例和只读实例,可以接受写请求。
只读(不连接主实例,无法接受写请求):仅连接只读实例,不接受写请求。
说明修改读写属性后,只对新建连接生效,已有的连接依旧保持原来的模式。更多信息,请参见什么是读写分离、设置读写属性和读权重。
对于集群系列实例,您可以直接使用实例的主备节点做读写分离。
就近访问
开启或关闭就近访问功能。推荐开启就近访问,以降低访问延迟,提升性能。更多信息,请参见设置就近访问。
连接池
设置连接池类型,详情请参见设置连接池:
事务级连接池(推荐):
业务侧多为短连接
连接创建频繁
连接数量很大(大于MySQL数据库的连接数限制)
以上场景下,业务不涉及事务级连接池的使用限制,建议优先选择事务级连接池。
会话级连接池:
业务侧多为短连接
连接创建频繁
以上场景下,业务受到事务级连接池的使用限制而无法使用事务级连接池,可使用会话级连接池。
关闭连接池(默认)
业务侧多为长连接
连接数量很少
业务侧已经使用了连接池(例如:Druid、DBCP、C3P0、HikariCP等)
以上场景下,可以不使用连接池。
说明当数据库代理小版本低于2.9.1时,该配置项仅在读写属性为读写(读写分离)时可选,代理小版本大于等于2.9.1时无限制。
延迟阈值
设置只读实例同步主实例数据时允许的最长延迟时间,取值范围:0秒~3600秒。
推荐值:受限于SQL的执行情况,只读实例有一定的几率会出现延迟,建议该值不小于30秒。
说明当数据库代理小版本低于2.9.1时,该配置项仅在读写属性为读写(读写分离)时可选,代理小版本大于等于2.9.1时无限制。
当只读实例的延迟时间低于阈值且读权重不为0时,读请求才会被转发至只读实例。
事务拆分
设置是否开启事务拆分功能,默认为开启。事务拆分能够将事务内写操作之前的读请求转发到只读实例,降低主实例负载。
说明仅在读写属性为读写(读写分离)时可选。更多信息,请参见设置事务拆分。
读权重分配
设置数据库各个实例的读请求权重,支持选择系统分配或自定义:
系统分配:系统根据实例规格自动分配各个实例的读权重。后续该主实例下新增的只读实例也会自动按照系统分配的权重加入到读写分离链路中,无需手动设置。
自定义:手动设置各个实例的读权重,范围为0~10000,读请求将按照各个只读实例权重比例分配,后续该主实例下新增只读实例的读权重默认为0,需要您手动修改。
说明就近访问功能是保证客户端到代理之间的路由,而读权重是设置代理到后端MySQL实例之间的路由,两者互不相关。但需要将二者结合使用,才能做到最小访问延迟。
实例的读权重越高,处理的读请求越多。例如,假设主实例有3个只读实例,读权重分别为0、100、200和200,则表示主实例不处理读请求(写请求仍然自动发往主实例),3个只读实例按照1:2:2的比例处理读请求。
不支持为已经设置只读实例延时复制时间的实例设置权重。
修改本参数实时生效,不会造成业务不可用。修改完成后,已存在的连接不会断开重连,只有新连接才会根据新权重进行分配。
如果RDS MySQL数据库实例为集群系列实例,则配置的权重为主节点和备节点的权重。
如果RDS MySQL数据库实例为高可用系列实例时,需要至少开通1个只读实例后,才可以设置读权重。
更多信息,请参见设置读写属性和读权重。
单击确定。
您可按需配置数据库代理的连接保持功能,该功能开启或关闭,将对当前RDS实例的所有数据库代理连接地址的访问策略生效。连接保持功能支持RDS MySQL实例在发生主动切换或故障场景下,保持应用程序与代理的连接不断开,用户通过代理地址访问数据库的应用程序不会收到连接断开的报错。具体操作,请参见设置连接保持。
相关文档
相关API
API | 描述 |
查询RDS实例的数据库代理详情。 | |
查询RDS实例数据库代理的代理连接地址访问策略信息。 | |
修改RDS实例数据库代理连接地址信息的设置。 |