2021年7月22日,腾讯云数据库正式发布数据库代理(又名proxy)服务,支持MySQL 5.7 版本和8.0 版本,可为用户提供透明且安全的网络代理服务,实现自动读写分离,降低业务使用数据库的复杂度,完美解决了数据库故障切换的网络瞬断问题,网络中断时间降低至0,MySQL数据库的故障转移时间最多可减少 60%,使得应用程序抵抗数据库故障风险的能力大幅提升。这标志着腾讯云数据库MySQL完成了企业级中间件的孵化,在可用性、稳定性和扩展性方面均有了突破性提升,能够更好地为用户提供企业级服务。
数据库代理是位于云数据库服务和应用服务之间的网络代理服务,用于代理应用服务访问数据库时的所有请求。数据库代理访问地址独立于原有的数据库访问地址,提交至数据库代理地址的写请求通过代理集群中转访问数据库的主实例(只写实例),将读请求转发至只读实例,自动实现读写分离,降低主实例的负载。
目前大量现网用户业务场景中存在读多写少、业务负载无法预测等问题,在出现大量读请求时,单个实例可能无法承受读取压力,甚至会对业务产生影响,这时需要对读取能力进行弹性扩展,创建一个或多个只读实例,利用只读实例满足大量的数据库读取需求。但该方案对用户的技术要求较高,需要业务侧支持读写分离改造,其代码的健壮性决定了业务读写分离的质量,同时也牺牲了灵活性和可扩展性。
使用腾讯云数据库代理可解决此问题,创建只读实例后,通过数据库代理开启自助读写分离功能,在应用程序中只需配置一个代理连接地址,就可以使写请求自动转发到主实例,读请求自动转发到各个只读实例。从而有效降低主实例的读负载,通过添加只读实例来提供数据库集群的水平扩展能力,降低用户自行拆分业务读写请求的复杂度,尤其适合大量读负载的情况。即使增加或删除只读实例,也无需调整应用程序的设置。同时腾讯云数据库代理与支持的数据库引擎协议完全兼容,因此应用程序无需更改代码,只需将连接指向数据库代理地址即可实现数据库访问。
腾讯云数据库代理服务具备高稳定性、强隔离性、超高性能、扩容方便快捷、完备的性能监控、热加载、支持自动读写分离等特性,采用集群架构部署,多节点保证故障评估转移,每个代理每秒最高可以处理10万左右的请求,支持1个 - 60个代理节点动态扩展。腾讯云数据库代理服务提供读/写请求数、CPU、内存等性能指标的秒级监控,可以根据监控数据及业务规划调整代理个数,支持动态热加载配置,不会发生网络中断或重启。
在应用场景上,除了解决主实例大量读负载之外,腾讯云数据库代理服务也能为多种高发业务痛点提供天然的解决方案。
游戏业务频繁地开服和滚服场景中,常常会遇到无法预测的工作负载,进而导致新的数据库连接突发。腾讯云数据库代理服务可通过专属连接管理使多个应用程序共享数据库连接,以有效利用数据库资源,并允许用户通过调节打开的数据库连接数来保持可预测的数据库性能,支持删除无法使用的应用程序请求,以保留应用程序的整体性能和可用性。
互联网行业频繁使用短连接的应用服务,在使用数据库时可能会频繁创建大量连接,腾讯云数据库代理的连接池功能能够实现资源复用,避免频繁创建、释放连接引起的大量性能开销,缩减系统整体响应时间,提高响应效率,增进系统运行环境的平稳性,另一方面也能有效避免常规数据库连接操作中可能出现的资源泄漏。
SaaS 或电子商务行业中的传统应用程序为减少客户的响应时间,可能会使数据库连接长期打开并保持空闲状态,使用腾讯云数据库代理服务可保留空闲连接,仅根据需要建立数据库连接服务于活动请求,从而避免为支持大多数空闲连接过度调大阈值及购买更高配置的数据库,可在显著降低成本的情况下提高效率。
此外,通过使用腾讯云数据库代理服务,用户可以构建可透明容忍数据库故障转移应用程序,无需编写复杂的故障处理代码。数据库专属代理自动将读流量路由到新的数据库实例,同时保留应用程序连接。
本文由博客一文多发平台 OpenWrite 发布!