博客 > 巨杉Tech | 微服务趋势下的数据库设计与应用简析

巨杉Tech | 微服务趋势下的数据库设计与应用简析

 2019-07-18  SequoiaDB,演讲实录

上周五(7月12日)巨杉数据库参与了由得到App主办八里庄技术沙龙活动,分享主题是关于分布式数据库架构与实战。

以下就是根据巨杉数据库现场分享的内容进行的分享实录整理。

巨杉数据库简介

巨杉,专注新一代分布式数据库技术研发,自2011年成立以来,坚持从零开始打造分布式开源数据库引擎,是中国首家连续两年入选 Gartner 数据库报告的数据库厂商。

巨杉数据库的主要产品包括 SequoiaDB 分布式关系型数据库与 SequoiaCM 企业内容管理软件,应用场景包括分布式联机交易、数据中台、分布式内容管理等。

目前,巨杉数据库已在近百家大型商业银行核心生产业务上线,并广泛应用于金融、电信、政府、互联网、交通等领域,企业用户总数超过1000家。

数据库应如何应对微服务发展趋势

图片.png

很多企业内部的应用开发都在从传统中间件加数据库的“烟囱式”开发,向微服务架构转型。而在微服务体系架构中,几乎每个微服务都需要提供数据持久化的能力,而用户也希望每个微服务所承载的数据量能够无限的弹性扩张。但是,在采用微服务架构的过程中,每个微服务使用自身独立的数据库存储又会使过去集中在一个地方的数据分散到很多不同的设备中,造成整个IT架构的数据严重碎片化。

图片.png

实际上,当企业用户采用微服务体系架构的时候,从数据管理的角度,业界有两种做法。

第一种:就是对应用程序进行微服务改造,底层数据库使用传统集中式数据库进行存储。这种做法学习成本也较低,其存在数据紧耦合,无法弹性扩张,以及可能存在单点故障等问题。

第二种:每一组微服务对应一个独立的小数据库,往往使用MySQL或PostgreSQL,业界使用较多的。这种机制能够解决集中式存储的问题,但是也带来了新的挑战,包括数据极度碎片化,在微服务之间无法共享,运维成本极其高昂。

两种办法都不能很好的解决微服务下数据存储管理的问题,因此分布式数据库就是要解决上述的两个问题。第一就是针对每个微服务做到数据弹性扩张,第二就是对整个企业IT做到数据的统一治理从而避免碎片化存储。

联机交易需要什么样的分布式数据库

图片.png

联机交易数据库特性

适合微服务的分布式数据库都应该具有特性,主要应该从两大维度。一是对传统技术的兼容,二是技术和架构的创新。

传统技术的兼容方面,必须支持ACID和SQL的完整性。

从新技术的前瞻性来看,首先,分布式数据库的核心价值在于数据库资源池在保证与传统数据库100%兼容的基础上,必须满足分布式弹性扩张,当资源池里面空间和计算能力不足时,需要通过动态增加计算存储节点的方式进行扩容。

其次,大家采用的开发流程、SQL标准、以及安全策略各不相同,因此分布式数据库必须能够支持多种模式的访问接口。

最后,交易分析混合处理能力。联机交易数据与实时数据分析在资源池内进行资源隔离,对同一份数据库访问并可以做到互不干扰。适合微服务的数据库必须有较强的交易分析混合处理能力。

分布式数据库架构及关键特性

图片.png

巨杉数据库实例化架构

要打造适合微服务架构的数据库,巨杉数据库采用了计算存储分离的架构。其中存储层采用自研的原生分布式数据库引擎,上层计算层则可以创建成百上千个数据库实例,同时每个数据库实例对应用完全透明,不需感知。如图5所示。

图片.png

计算与存储分离架构

对于计算和存储分离,把分布式存储层展开,SeuqoiaDB分布式存储引擎有很多节点角色,其中有协调节点编目节点和数据节点和编目节点。协调节点是数据路由,数据存储在数据节点。编目节点保存整个数据集群系统信息。数据节点把数据打散到不同的分区中,使用三副本架构,任何一个节点出故障,不影响正常运行。

图片.png

巨杉数据库核心应用场景

巨杉数据库大维度下的定位是一款真正的金融级分布式关系型数据库。 巨杉数据库目前在企业级应用场景主要包括分布式联机交易、数据中台以及分布式内容管理。

联机交易是数据库最广泛应用的场景之一,通常用来支撑联机业务运营。分布式联机交易数据库联机业务价值包括,分布式架构转型,高并发、高处理能力,业务持续扩展能力以及自主可控与数据安全要求。

数据中台提供全量数据的实时在线服务,泛指传统联机交易以外的所有对外服务业务。

内容管理平台为企业提供存储、管理和使用海量非结构化数据能力。常见应用包括影像平台、文档管理平台、音视频双录系统等。

图片.png

分布式事务能力

巨杉数据库支持分布式事务,使用二段提交确保多个节点之间数据一致,锁机制是悲观锁,支持MVCC的读写提交能力。

图片.png

交易分析混合处理能力读写分离


图片.png

多租户物理隔离能力

通过数据库引擎的分布式架构、Multimodel多模数据存储类型以及实例化的数据库实例管理,巨杉数据库可以实现多租户啊管理的能力、交易分析混合处理能力等等云化数据库必须的技术能力。

图片.png

最后八里庄技术委员会主席李丹与巨杉数据库技术专家合照留念,期待更多数据库技术交流。

准备开始体验 SequoiaDB 巨杉数据库?