开通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~10000。后续该主实例下新增只读实例的读权重默认为0,需要您手动修改。
说明实例的读权重越高,处理的读请求越多。例如,假设主实例有3个只读实例,读权重分别为0、100、200和200,则表示主实例不处理读请求(写请求仍然自动发往主实例),3个只读实例按照1:2:2的比例处理读请求。
不支持为已经设置只读实例延时复制时间的实例设置权重。
修改本参数实时生效,不会造成业务不可用。修改完成后,已存在的连接不会断开重连,只有新连接才会根据新权重进行分配。
如果RDS MySQL数据库实例为集群系列实例,则配置的权重为主节点和备节点的权重。
如果RDS MySQL数据库实例为高可用系列实例时,需要至少开通1个只读实例后,才可以设置读权重。
更多信息,请参见设置读写属性和读权重。
单击确定。
您可按需配置数据库代理的连接保持功能,该功能开启或关闭,将对当前RDS实例的所有数据库代理连接地址的访问策略生效。连接保持功能支持RDS MySQL实例在发生主动切换时,保持应用程序与代理的连接不断开,用户通过代理地址访问数据库的应用程序不会收到连接断开的报错。具体操作,请参见设置连接保持。
新增代理连接地址(原代理终端)
开通数据库代理后,您可以新增代理连接地址,以将不同的读写策略应用到不同的业务。
单个RDS MySQL实例支持1~7个代理连接地址。
相关文档
相关API
API | 描述 |
查询RDS实例的数据库代理详情。 | |
查询RDS实例数据库代理的代理连接地址访问策略信息。 | |
修改RDS实例数据库代理连接地址信息的设置。 |