浙江移动基于微库架构实现自主可控数据库读写分离扩展

Posted 三墩IT人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浙江移动基于微库架构实现自主可控数据库读写分离扩展相关的知识,希望对你有一定的参考价值。

项目组成员:王河、周勋、谭峰、孙占峰

背  景



浙江移动2020年使用基于PG数据库的亚信版本AntDB成功完成最核心的三户资料数据库(客户中心库)自主可控试点,验证了自主可控数据库可以在电信运营商最核心交易系统上稳定运行,为进一步提升自主可控数据库的处理能力,浙江移动对标主流的数据库产品,探索出通过微库架构对自主可控数据库进行了读写分离特性升级,于2021年5月成功在客户中心完成试点,使得自主可控数据库的并行处理能力得到大幅提升。



浙江移动基于微库架构实现自主可控数据库读写分离扩展

实施内容



本次升级方案基于浙江移动最新的微库架构,在微库中间件层增加SQL路由解析判断逻辑,将数据库的“读操作”路由到从库,“写操作”路由到主库。既可以实现对应用代码的零侵入,减少了整体改造成本,又在读写路由策略上完成升级,大大增加读写分流比。





浙江移动基于微库架构实现自主可控数据库读写分离扩展

图1:基于微库架构的读写分离方案


浙江移动基于微库架构的数据库读写分离方案主要有以下几个特点:
支持升级过程对应用透明:
通过微库中间件实现基于SQL的路由解析,对应用完全透明,无需修改现有程序。
支持可配置化规则管理:
读写规则参数化、配置化,可通过参数控制逻辑子集群、从库的读写分离开关,实现读流量的细粒度引流、负载均衡。
支持基于SQL的读写分离:
通过在中间件内部直接识别语句类型,记录事务状态,在线处理SQL分流。相较于通过接口类型进行路由,读写分流比得到大幅提升。
支持读写分离在线分流:
可在线调整读写分离分流策略,无需重启数据库或应用,新的策略在线生效。
支持异构数据库读写分离:
兼容多种浙江移动主流数据库,无需数据库或应用改造,支持在不同数据库产品之间实现读写分离。
支持业务断点续连:
当数据库集群中出现某个节点宕机或者网络中断等问题时,数据库集群可以自动恢复。同时微库中间件会自动重建连接和自动判断主备状态,通过自动重发失败语句至可用库,最大程度保障上层应用服务连续。

本次割接,基于业务集群划分微库中间件逻辑集群,使每个业务集群对应一个中间件逻辑集群,以中间件逻辑集群粒度设置读写分离开关,分集群打开开关,减少割接影响。


浙江移动基于微库架构实现自主可控数据库读写分离扩展

实施效果



上线后,CRM系统运行稳定,CPU负载、内存使用率等指标持续在低位运行,无异常事件发生,验证了新架构的可靠性。





浙江移动基于微库架构实现自主可控数据库读写分离扩展




浙江移动基于微库架构实现自主可控数据库读写分离扩展

在数据库可扩展性方面,上线后从库分流了53%业务量,主库CPU使用率下降64%,数据库横向可扩展能力大幅提升。





浙江移动基于微库架构实现自主可控数据库读写分离扩展




总  结



此次基于微库架构的读写分离成功上线,一方面证实了浙江移动微库架构带来的灵活性与可扩展性,另一方面探索出一条以最小成本提升软硬件性能的道路。浙江移动将在后续自主可控实践中继续深化数据库技术的探索。



END

查看更多内容



以上是关于浙江移动基于微库架构实现自主可控数据库读写分离扩展的主要内容,如果未能解决你的问题,请参考以下文章

微众银行基于自主可控技术的分布式架构实践

只读实例与RO组--助力MySQL实现读写分离,提升扩展性

Akka-CQRS- 基于akka-cluster的读写分离框架,构建gRPC移动应用后端架构

Linux——MySQL主从复制与读写分离实现高可用性,负载均衡的功能

Redis早期的主从架构原理分析,早期如何实现读写分离的?

如何构建银行自主可控的智能研运体系?