四种分布式数据库场景选型优缺点对比分析

随着互联网金融场景的不断拓展,海量的数据访问和处理造成传统的集中式数据库开始表现出性能瓶颈,分布式数据库的研究和场景使用应运而生,而数据的安全和合规也随着企业对数据使用的要求越来越高更加重视。因此在这种场景下,分布式数据库应具备高性能、可扩展、高可用和高容错等特性,而传统的集中式数据库难以同时满足,本文重点介绍分布式数据的特性及种类,根据相应的业务场景对分布式数据库选型进行分析,并对分布式数据库的细分领域的发展进行探讨。

顾黄亮,十年技术老兵,历经研发和运维,了解基础架构、安全、中间件、数据库,专注于智慧运维体系的打造。曾供职于航天晨光、上汽集团云计算中心,现任苏宁消费金融安全运维部总监。

1引言

近年来,随着国际信息安全形式的日益严峻,国家信息安全策略逐步深入。因此,一行两会连续针对金融业数据库技术受制于人的严峻形势出台了相关政策,以满足构建安全可靠可控的信息技术体系的要求。

纵观近年来普惠金融的发展,多用户、低额的客单价带来的主要挑战是数据量、交易额的大幅提高,并伴随着数十倍的交易高峰压力以及交易复杂度的增加。而传统数据库在处理此类应用场景的时,在扩展性、性能、吞吐量和可靠性等方面遇到了明显的瓶颈,只能通过业务拆分、升级硬件的方式来提升性能,造成设备投入和人员成本的不断攀升。面对着互联网金融业态不断的发展,数据的交互和存储也呈现指数级增长,这样的方式也无法保证业务连续性。在此形式下,在分布式数据库的选型上,根据不同的业务场景和关键系统中选择不同的开源产品,通过对开源数据库的深入研究和应用,满足了互联网金融业务场景的事务处理和数据处理的要求。

2传统数据库的那些事

个人认为,分布式数据库是起源于传统的关系型数据库,两者的设计场景不同,前者面对企业级应用,运行在独立的服务器上,而后者的应用更多的是面对互联网用户。随着用户相应的数据量极具增加,传统的关系型数据库在可扩展性的弊端日益显现,一般有下面几个方面:

(1)单点处理的性能瓶颈,即单点的数据库系统无法处理大规模的并发请求和计算;

(2)单点运行风险高,容灾容错能力差;

(3)单点存储能力有限,只能纵向扩展,不能横向扩展;

(4)应用扩容升级难度大,设备投入高。

对于数据库本身来说,传统的分布式数据库都有各自的集群解决方案,不过这不是真正意义上的分布式,仅仅是为了解决高可用场景下数据库的负载均衡问题。这种特性是每个数据库都是冗余的,所谓冗余,那就是每个数据库的数据都是完全一样的,所以数据量上升到一定的程度,对集群中的每个数据库都会造成很大的压力。

然而,云计算的出现引爆了这一切。当资源不再是瓶颈的时候,分布式数据库的春天来了。

3说说分布式数据库

分布式数据库的概念不再阐述,大体描述就是数据库技术和网络技术的亲生孩子。在此,我们为什么选择分布式数据库,理由有如下:

(1)具有灵活的体系结构;

(2)适应分布式的管理和控制机构;

(3)经济性能优越;

(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等产品,在数据库和应用间架一层Proxy,这种方案无法支持分布式事务、也无法支持跨库关联,分布式数据库方案则将分库分表等中间件实现的功能下推到数据库层面来做,对应用透明,应用就像使用单机数据库来使用分布式数据库,同时天然地支持分布式事务。

4常用的分布式数据库和场景选型

针对以上概述,列举ElasticSearch、Redis、MySQL分布式集群、MongoDB四个分布式数据库进行举例,分别从简介、应用场景、优点、缺点、备份/持久化进行对比和分析。其中MySQL分布式集群包括以下几种集群方式:Proxy,Cluster,Mha,Mgr,基于MySQL协议的NewSQL,如MyCAT,OceanBase不在此范围之内。

(1)简介

简介

ElasticSearch

Elasticsearch是分布式的实时文件存储,每个字段都被索引并可被搜索,分布式的实时分析搜索引擎,可以扩展到上百台服务器,处理PB级结构化或非结构化数据

Redis

Redis是开源BSD许可高级的key-value存储系统(NoSQL),可以用来存储字符串,哈希结构,链表,集合,因此,常用来提供数据结构服务,Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份。

MySQL分布式集群

MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。数据更新使用读已提交隔离级别(read-







































老中医治疗白癜风
乌鲁木齐治疗白癜风最好的医院



转载请注明:http://www.xcqg58.com/zyyd/9575.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了