巨杉说话|拒绝数据碎片化,原生分布式数据库灵活应对数

  

日2019年7月25 - 26日,以“运筹帷幄,数揽未来”为主题的大坝中国数据智能管理峰会在上海青浦区成功举办。在大坝峰会上,巨杉数据库为大家带来了题为“云架构下的分布式数据库设计与实践”的主题分享。

  

微服务下数据库架构的演进

  

应用开发从传统架构向分布式转型,最先面临改造的自然就是应用程序框架。如今的微服务框架已经非常成熟,其代表性架构往往包括协议处理,服务拼装,原子服务,以及底层持久化四层。业务逻辑从传统的单一中间件被拆解成众多微服务模块,每个微服务模块由完全对等的一系列容器构成,可以简单通过增加容器的方式实现对该服务吞吐处理能力的扩容。

  

但是微服务的拆分即意味着每个服务都拥有自己独立的执行逻辑与存储。从数据库的角度来看,微服务体系的拆分对数据库存储提出了极大的挑战。如果每个微服务依然将数据存放在传统的单点数据库中,其存储与处理能力均无法随着微服务容器数量的上升提供同样的扩展能力。在这种情况下,数据库将会成为微服务体系框架中性能与扩展性的最大制约瓶颈。

  

而如果每个微服务使用独立的数据库进行存放,整个企业,它的数据架构将会变得支离破碎。数据库的数量从过去的几百被拆分为上万个数据库,整个运维团队的管理成本与数据库采购成本面临几何级数的提升。

  

因此,分布式数据库的目标不仅仅作为传统Oracle或DB2的单一替代,将一个数据库存放不下的数据放到多个物理机存放。在实际环境中,大部分银行都有着较为完善的数据生命周期管理策略,一般不会在生产环境中堆积大量的历史数据,因此数据量一般来说不会是使用分布式数据库的最重要原因。

  

新一代分布式数据库技术特性

  

为了支撑未来它微服务框架,分布式交易型数据库的引入需要从传统技术兼容性,以及新技术前瞻性两个维度进行评估。

  

"当应对微服务应用框架,原生分布式数据库架构优势在于两点。第,一是解决数据的弹性扩张,使每个微服务不受底层数据存储限制第。二,解决微服务应用架构中数据严重碎片化的问题。”

  

酸的支持与SQL完整性的支持是评估一款新型分布式数据库是否能够提供与传统数据库技术兼容的两大关键指标。

  
  
  
  

酸的支持

           

从安全性上来看,不论采用新技术或传统技术,数据不错不丢是所有数据库的必备基础。在分布式数据库业界中,一些针对互联网技术设计的产品以分布式(分区容忍)加高可用(可用性)作为目标,在安全一致性(一致性)上无法保证数据的正确,很难在金融业务中被广泛使用,因此,银行所关注的新型分布式数据库必须首先保证数据的安全和一致性,其中分布式事务,分布式锁,四种隔离级别的支持等都是该指标中的关键技术点。

  
  
  
  

SQL完整性支持

           

SQL完整性指的是新型分布式数据库与传统关系型数据库的开发友好性。越是成熟的分布式数据库,其SQL语法越能做到与传统关系型数据库兼容,同时其数据切分对应用程序则越发透明。如今大部分分布式数据库技术都号称支持MySQL语法,而主流新型应用程序也都将MySQL作为其默认支持的数据库选项,因此,对MySQL语法协议支持的强弱则成为分布式数据库SQL完整性支持的评判关键。

  

新技术前瞻性指的是分布式数据库与未来开发方式和这架构是否吻合。

  
  
  
  

分布式与弹性扩展能力

           

作为数据服务资源池,分布式数据库必须做到可弹性扩张,才能在服务于上层不断增加微服务类型与数量。同时对于每个微服务来说,其数据存放在一台物理设备还是多台物理设备,必须对其中的应用代码完全透明。

  
  
  
  

多模式引擎

           

服务于上层来自不同开发商,不同业务场景,不同数据类型的微服务,分布式数据库必然需要支持多种SQL协议与计算引擎。从存储引擎来看,结构化与半结构化数据都可能将会在应用中同时使用,因此,新一代分布式数据库需要从访问接口到存储结构均支持多模(多模型)引擎。

巨杉说话|拒绝数据碎片化,原生分布式数据库灵活应对数