当前位置: 首页 > 科技观察

四种分布式数据库场景选择、优缺点对比分析及未来展望

时间:2023-03-15 17:21:34 科技观察

1引言近年来,随着国际信息安全形势的日益严峻,国家信息安全战略也逐渐深入。因此,针对金融业数据库技术受制于人的严峻形势,两届会议不断出台相关政策,以满足建设安全、可靠、可控信息技术体系的要求。纵观近几年普惠金融的发展,多用户、低客单价带来的主要挑战是数据量和交易量的大幅增长,伴随而来的是数十倍的交易高峰压力和交易增量复杂。然而,传统数据库在应对此类应用场景时,在可扩展性、性能、吞吐量和可靠性等方面遇到了明显的瓶颈。他们只能通过业务拆分和硬件升级来提高性能,导致设备投资和人员成本上升。面对互联网金融业务的不断发展,数据的交互和存储也呈指数级增长,这种方式无法保证业务的连续性。这种形式,在分布式数据库的选型上,根据不同的业务场景和关键系统,选择不同的开源产品。通过对开源数据库的深入研究和应用,满足互联网金融业务场景的交易处理和数据处理。加工要求。2传统数据库的那些事儿我个人认为分布式数据库起源于传统的关系型数据库。两者的设计场景不同。前者面向企业级应用,运行在独立的服务器上,而后者的应用则更多面向互联网用户。随着用户对应的数据量的巨大增长,传统关系型数据库在可扩展性方面的劣势也越来越明显。一般有以下几个方面:(1)单点处理的性能瓶颈,即单点数据库系统无法处理大规模并发请求和计算;(2)单点运行风险高,容灾容错能力差;(3)单点存储容量有限,只能纵向扩展,不能横向扩展;(4)应用扩展升级困难,设备投资高。对于数据库本身,传统的分布式数据库都有自己的集群解决方案,但这并不是真正意义上的分布式,只是为了解决数据库在高可用场景下的负载均衡问题。这个特点就是每个数据库都是冗余的。所谓冗余,就是每个数据库中的数据完全一样,所以数据量上升到一定程度,会对集群中的每个数据库造成很大的破坏。压力。然而,云计算的出现引爆了这一切。当资源不再是瓶颈,分布式数据库的春天就来了。3谈谈分布式数据库分布式数据库的概念就不细说了,笼统的描述是数据库技术和网络技术的亲生子。在这里,我们选择分布式数据库的原因有以下几点:(1)具有灵活的架构;(2)适应分布式管控机制;(三)具有优越的经济性能;(4)系统可靠性高,易用性好;(5)快速的本地应用响应;(6)超强的可扩展性,易于与现有系统集成。应该如何使用分布式数据库?分布式数据库应该如何选择?首先,分布式数据库根据特性大致可以分为三类:(1)支持持久化存储的分布式存储系统,如MySQL、OceanBase;(2)面向计算的分布式计算框架,如HadoopHDFS、Ceph、Swift、Blob、Cinder、Lustre;(3)分布式消息队列,如Redis、RMQ、CMQ、Kafka。其次,基于不同的应用场景,可以根据特点进一步细化,可以分为以下几种:(1)分布式协同数据库系统;(2)分布式任务;(3)流式计算;(4)分布式文件系统;(5)分布式nosql存储;(6)分布式关系数据库;(7)分布式消息队列。回到核心问题,如何选择分布式数据库技术路线?分布式一般分为三种技术路线:分布式接入客户端、分布式中间件模式、分布式数据库模式。其中,分布式接入客户端对应用程序的侵入性很强,改造难度很大;分布式中间件类似于MyCAT等产品,在数据库和应用之间加了一层代理。该方案不能支持分布式事务,也不支持跨数据库。关联,分布式数据库解决方案将分库分表等中间件实现的功能推送到数据库层面,对应用程序是透明的。应用程序就像使用单机数据库一样使用分布式数据库,同时自然支持分布式事务。4常用分布式数据库及场景选择基于以上概述,列举四种分布式数据库ElasticSearch、Redis、MySQL分布式集群、MongoDB为例,从介绍、应用场景、优缺点、备份/持久化等方面进行对比分析.其中,MySQL分布式集群包括以下集群方式:Proxy、Cluster、Mha、Mgr、基于MySQL协议的NewSQL,如MyCAT,OceanBase不在此范围内。(1)介绍(2)应用场景(3)优点(4)缺点(5)备份/持久化方案5项目中的一些问题在项目中,分布式数据库的设计一般会遇到几个难点。(1)分布式事务的问题。在分布式数据库中,分布式事务的实时一致性很难保证,容错的设计必须综合考虑,通过牺牲相应的可用性来保证一致性。(2)在性能方面,为了保证事务的全局一致性,分布式数据库需要一个全局事务管理器来分配全局事务的工作。不同的分布式数据库可能具有不同的功能。如果数据量和请求量达到一个数量级时,事务管理器可能会成为新的瓶颈。(3)高可用性问题。当分布式数据库集群中的一个节点宕机时,宕机和选举工作的数量会影响整个集群提供的服务质量,这与业务的容忍度密切相关。在运维阶段,分布式数据库是一个从了解、熟悉到穿越的过程。一个新产品或功能的运维,离不开大量的准备工作。因此,进入运维阶段,一般应考虑以下步骤。(1)编写通用运维脚本、应急手册、运维手册;(2)做好分布式数据库的监控,特别是关键指标的监控;(三)技术手册培训和准入条件限制;(4)定期做好演练工作,及时发现问题。6分布式数据库发展的一些思考在企业中,新技术和产品的选择不仅要满足当前业务场景的需求,还要考虑未来三到五年这个产品的发展路径和方向,以及能否不断迭代以满足未来的需求。因此,用户了解每项技术的现状是远远不够的。只有认清了一项技术的发展战略和架构的局限性,才能预见和洞察未来。架构限制并不等同于缺乏功能。很多新技术一开始并不能像Oracle那样提供完整的企业级功能,但这并不意味着用户一定要等到所有功能都完成了才考虑学习和使用。用户在评价一个新产品和新技术时,产品的功能点需要满足几个必要的基本功能,而一些高级功能则不需要立即可用。对于分布式数据库来说,随着业务场景和数据使用和处理需求越来越成熟和清晰,分布式数据库在场景和功能上更加细化,主要的发展发现基本上可以分为分布式在线数据库和分布式数据库两类。分布式计算数据库,非结构化小文件的需求也在考验着分布式数据库能否在这个领域有所作为。可以预见,用于非结构化文件存储的小型分布式数据库也可能是后来的战场之一。【作者】谷黄良,十年技术老兵,研发运维经验丰富,懂基础设施、安全、中间件、数据库,专注打造智能运维系统。曾就职于航天晨光、上汽云计算中心,现任苏宁消费金融安全运维部总监。

猜你喜欢