云数据库 MySQL 是腾讯云为用户提供的安全可靠、性能卓越、易于维护的企业级云数据库服务,具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
本文为您介绍某银行客户是如何在业务中应用云数据库 MySQL 的数据库代理功能的。
客户介绍
客户是一家国有的银行企业,在银行业中占据着重要的地位,该企业包含了许多重要的业务场景,比如存款业务、贷款业务、理财业务、外汇业务以及电子银行业务等,通过各种业务场景,为该银行的用户提供全方位、多元化的金融服务,促进经济发展和社会进步。
所属行业
银行业
业务挑战
由于客户业务的金融属性,其业务部署不一定只依托于一种数据库类型。比如核心的跑批、交易类业务会部署于某一种云上,海量数据的存储访问又会部署于另一种云上。客户的银行拥有自己的 APP 应用,这种 APP 应用已经不是简单只有交易这个能力,还有很多诸如商城、社区、运营活动、小游戏等服务类的非核心业务,这一部分业务一般部署于公有云上。对于客户来说,需要一种能减轻数据库运维压力、减轻扩展复杂度的机制,以便客户不用修改自己的业务逻辑代码来适应数据库,尤其是在读写分离场景下。这是由于银行业务有着非常多的读写分离需求,如果让业务直接和数据库实例相连接,那么当业务需要扩展只读实例来提高读能力的时候,就需要手动获取新增只读实例的地址,并把读负载手动均衡到只读实例中,这样会大大增加数据库运维的压力以及管理复杂度。
解决方案
客户使用云数据库 MySQL 的数据库代理功能来实现自动读写分离。
通过数据库代理地址的请求,可以全部通过代理集群转发到访问数据库的主实例、只读实例,进行读写分离。
支持代理节点、代理地址以及只读实例的扩展,可以方便地进行水平扩展,满足业务的快速增长。
代理节点、只读实例支持跨可用区,保证高可用。
支持自适应负载均衡,无需客户根据业务实时修改读分配权重,代理可根据实时的负载和数据库实例的情况来做动态的负载均衡。
支持防闪断能力,当感知到计划内的有损行为时,数据库代理会与切换前的主节点断开连接,将客户端到数据库代理上的连接,恢复至切换后主节点的连接上,实现对应用程序端无损切换。
客户价值
使用数据库代理功能,可以帮助客户减轻运维压力,数据库代理的技术设计上有路由规则,可以实现自动转发,不需要客户的业务来做读写分离规则。
使用数据库代理功能后,业务只需要维护代理地址,可方便地进行数据库的管理和维护。
对读权重的分配更加灵活,更加适配业务场景,使用数据库代理之前,当客户端大量请求过来时,只能按照预先设置的权重来分配请求,这容易出现负载不均衡以及单点故障,云数据库 MySQL 数据库代理可以自己配置连接权重,也支持开启“动态”的负载均衡,可根据业务需求进行灵活调整,可以有效地避免单点故障,提高系统的稳定性和可靠性。