这篇说说云数据库 MySQL 新版数据库代理。
一、费用说明
数据库代理费用相关请参见 商业化计费说明。
二、适用场景
·大量短连接为主的业务,性能不足。
·业务使用多个只读实例,在应用程序侧手动读写分离,维护成本和风险较高。
·连接数过多导致实例负载过高。
·事务内有大量请求,导致主实例负载过高的场景。
·不同业务需要通过访问地址进行负载分配。
·跨可用区需要就近访问,降低访问延迟。
三、读写属性说明
每个数据库代理访问地址都可以分别设置各自的读写属性。
·读写:用来支持读写分离功能实现业务线性扩展。
该属性下至少包含一个主实例和一个只读实例,写请求都只会发往主实例。支持如事务拆分、连接池等读写分离功能,支持只读实例延迟剔除、最小保留实例数、故障转移等策略。
·只读:用来支持只读的业务,如报表。
该属性下至少包含一个只读实例,主实例不会参与路由,支持事务拆分、连接池等功能,支持只读实例延迟剔除、最小保留实例数等策略。
四、数据库代理特性
·高稳定性
采用集群架构部署,多节点保证故障平滑转移。
·高可用
可以通过跨可用区部署的方式来提升数据库代理的可用性。
·强隔离性
数据库代理使用独立资源为当前实例提供代理服务(各代理资源独立,不共享资源)。
·超高性能
每个代理每秒最高可以处理10万左右的请求。
·扩容方便快捷
支持1个 – 60个代理节点动态扩展(公测期间仅支持6个节点)。
·完备的性能监控
提供了读/写请求数、CPU、内存等性能指标的秒级监控,可以根据 监控数据 及业务规划调整代理个数。
·热加载
主实例发生切换、变配、只读实例增减等情况,数据库代理可动态热加载配置,不会出现网络中断或重启。
·支持自动读写分离
通过配置数据库代理地址的读写属性,可以有效降低主实例的读负载,通过添加只读实例来提供数据库集群的水平扩展能力,并且可以帮助用户实现自助读写分离,降低用户自行拆分业务读写请求的复杂度,尤其适合大量读负载的情况。
例如,应用程序中只需配置一个代理连接地址(数据库代理读写属性已配置为读写分离时),该地址会自动实现读写分离,将读请求发送至只读实例,将写请求发送至主实例。即使增加或删除只读实例,也无需调整应用程序的设置。
·支持连接池
有效解决连接数过多或短连接业务频繁建立新连接导致实例负载过高的问题。
·支持事务拆分
将事务内第一个写请求之前的读请求转发到只读实例上执行,写请求及其后续请求仍路由至主实例,在保障事务正确性的同时降低主实例负载。