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