【摘要】伴随互联网的多样化发展,NoSQL和NewSQL等开源数据库越来越多地契合了非结构化以及半结构化数据业务,尤其是面对数据量级剧增以及读写多样化的场景。企业在数据量剧增以及业务模式多样化的场景下,应用开源数据库平台的存储架构应该如何设计和选型?
【作者】孙伟光,金融企业资深工程师
一、金融行业数据库应用的场景以及对存储层的需求
金融业其特殊属性决定了对数据库有着极高标准和要求。作为数据库最后一道生命线的数据存储成为最关键的IT技术底座。
为开源数据库科学合理的设计存储架构,其选型要点与计算场景、数据类型、数据库部署架构息息相关。根据系统架构分为集中式数据库和分布式数据库,不同的架构适应不同的规模和应用场景,如表1所示。分布式数据库在可扩展性、高并发支持方面具有优势,集中式数据库在事务性支持上遵循 ACID 原则,在事务支持上具备优势,如表2所示。
表1 数据库应用对存储层的需求
表2 集中式数据库与分布式数据库对比
二、存算一体和存算分离架构的特点分析
数据库架构选型既要考虑与传统技术的兼容性和新技术发展,分布式数据库满足云原生需求,云原生利用容器微服务等技术,支持业务系统更加敏捷的交付。
随着业务量的增加和业务种类的变化,对数据库读写性能、吞吐量、一致性等方面的要求各有不同。容量大小规划:随着数据量的不断提升,容量规划重要性逐步上升。弹性扩展:分布式数据库通过横向扩展服务器的方式使数据库获得了更高的性能。在对分布式数据库进行设计时,数据的划分对系统的性能、响应速度、可用性有着极大的影响。因此对于业务紧耦合的场景,更适于使用集中式数据库,如表3所示。
表3 存算分离与存算一体架构对比
三、开源数据库存储架构最佳实践 Tips
(1)MySQL/PG数据库由许多不同的文件组成,而数据文件可以跨越不同磁盘存储,通常情况,尽量利用LVM技术实现数据文件横跨多个LUN,即分散 IO 以提高性能; 充分利用存储高性能。
(2)MySQL存储架构:MySQL使用主从复制的方式实现高可用性和读写分离,读操作和写操作分别分配到不同的MySQL实例,主库处理写操作,从库用于读操作。PostgreSQL存储架构:PostgreSQL支持多种复制方式,包括主从复制和逻辑复制。读写分离,提高了IO效率及利用率,使整个存储繁忙有序。
(3)数据分片与分区:对于大型项目,可以考虑使用数据分片和分区技术,将数据拆分到不同的存储节点,提高单个存储效率。
觉得本文有用,请转发、点赞或点击“在看”,让更多同行看到
资料/文章推荐:
欢迎关注社区 “数据库”技术主题 ,将会不断更新优质资料、文章。地址:https://www.talkwithtrend.com/Channel/179
*本公众号所发布内容仅代表作者观点,不代表社区立场