作家
登录

如何为微服务选择数据库

作者: 来源: 2017-11-20 15:15:33 阅读 我要评论

另一个成本是支撑多个数据库的操作成本。这会成为一个问题,尤其是当数据库是集中治理,并且团队必须在多种技巧的┞菲握上保持高程度,但这在DevOps情况下,该问题并不会太凸起,因为开辟团队须要支撑他们在临盆情况中选择的数据库。

多模型数据库(Multi Model Databases)

作为别的的选择筹划或混淆持久化模式的弥补, 数据库厂商已经开端建立和推广多模型的数据库。术语“模型”指的是数据存储所供给的核心抽象,如表(关系和非关系)、列存储、键值、文档或图。我们可以将一个多模型应用法度榜样看作一个应用多个数据存储类型的应用法度榜样,而多模型数据库是支撑多个抽象模型的数据库。

DataStax企业版(DSE)是多模型数据库的典典范子,它核心支撑Cassandra的分区行存储(表格)模型,同时也支撑基于在其之上的图的抽象层(DSE图)。DSE在核心模型之上构建对应的键值和文档模型也是很简单的,如下图所示。如许,我们可以修改膳绫擎的混淆持久化的办法,大年夜而应用一个基本数据库引擎为我们所有的办事供给对应的办事,而应用零丁的Cassandra keyspaces在不合办事拥有的数据间保护清楚的界线。

若何为微办事选择数据库

[list]

  • 表格:我们重要的应用办事A可以经由过程Cassandra的萌芽说话(CQL)直接和DSE的数据库打交道。
  • 键值对:固然Apache和Cassandra的分布式版本DataStax都没有供给明白的键值对API,然则象办事B可以经由过程表设计去支撑单个键值和列的办法,去拜访

Cassandra,例如:

代码

  1. CREATE TABLE hotel.hotels (key uuid PRIMARY KEY,value text); // 或者选择blob类型 
  • 文档型:Cassandra经由过程应用JSON文件支撑文档型风格的数据,这可以用在办事C中。留意因为Cassandra须要针对表定义schema模式,所以不克不及插入新增随便率性的JSON列,这是一个可能平日和文档型数据库有关的特点。
  • 图:对于象办事D那样相干度很高的数据,DSE的图是一个高度可扩大的图形数据库,它构建于DSE数据库之上。DSE图支撑来自Apache tinkerpop项目中强大年夜的功能和表示力的Gremlin API。[/list]

多模型数据库的长处和限制

在推敲是否投资应用多模型数据库(或你已经在应用的数据库的多模型的特点)时,你要推敲我们前文评论辩论的关于混淆持久化中,同样的开辟和运营成本的问题。

应用多模型数据库可以让运营变得简单。即使不合的开辟团队应用不合的API和不合的交互模式和后端数据库平台打交道,我们也只须要治理一个平台罢了,大年夜而进步了效力。

例如,ThoughtWorks技巧雷达第16期中,评论辩论了基于Cassandra构建的DSE图数据库的特点,并且也提到个中须要衡量的内容:

云架构,NoSQL 和微办事架构

引用

基于Cassandra 构建的DSE图数据库定位是大年夜范围的数据集,比拟之下我们经久爱好的Neo4j开端表示出必定的局限性。这是须要弃取的;比如,你会掉去了ACID的事务特点和Neo4j运行时的模式自由的特点,但却可以拜访Cassandra的基本表,以及针对分析工作负载和Spark的┞符合,还有强大年夜的TinkerPop/Gremlin萌芽说话可以应用,这切实其实是一个值得推敲的选择。

如不雅推敲Web应用中的各类数据类型,你可能会发明不合的数据类型对一致性有不合的需求,并且实际须要急速一致性的数据类型数量相对较少。

在以前的十年,大年夜范围的分布式体系出现爆炸式增长。这一趋势促使在数据库范畴产生了一股巨大年夜的创造力,这在软件业的汗青上无疑是没有先例的。其结不雅是出生了一个健康和充斥竞争的数据库市场,我们可以是以在大年夜量的平台中各取所需。然则我们应当若何决定?

膳绫擎引用的ThoughtWorks的不雅点中,还提到了在推敲多模型数据库中另一个重要的身分 - 在不合的模型和数据引擎间的┞符合和交互问题,以及为拜访数据的各类操谆赝分析的用例。DSE支撑经由过程Spark(DSE分析)拜访图数据以进行数据分析,并且DSE搜刮引擎供给了针对DSE数据库中的数据创建各类萌芽索引的才能。

微办事数据模型操作的四个步调

混淆持久化(Polyglot persistence)

既然我们已经商量混淆持久化和多模型两种方法的优缺点,我们应当若何去决定哪些数据模型实用于大年夜范围可扩大的微办事应用呢?可以按照以下步调:

  1. 辨认你的应用法度榜样中重要的数据类型,为个中每种类型创建一个办事,并让每个办事掌控响应的持久层。在可能的情况下,为所有办事都应用多模型数据库,许可办事在与数据交互的模型中是不雷同的。
  2. 用Tabular(例如DSE数据库)作为收集程度的可扩大性和可用性的重要模型,然后根据须要在此之上构建分层的键值对和文档数据模型。请务必推敲在操谆赝分析用例中拜访数据的各类办法,以便提前筹划若何将搜刮索引和复制等特点用于数据分析中间。
  3. 用图的办法去表示(即DSE图)高度接洽关系的数据,特别是在实体之间的关系有多个或多个属性,并且数量比实体本身的属性多的时刻,或者须要在雷同的实体之间捕获多对多的关系的时刻。
  4. 在不须要变革的情况下,保存关系数据库技巧中的遗留投资。例如,当你的案例是须要大年夜范围、低延迟和高可用性的时刻,那就应用传统的关系型数据库吧。

  5.   推荐阅读

      换高管、变业务、质押股权,乐视云有未来吗?

    Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 在这份通知布告中,“乐视云”三钢髦极为惹人注目,大年夜不久前吴亚洲(乐视云前CEO,11月15正>>>详细阅读


    本文标题:如何为微服务选择数据库

    地址:http://www.17bianji.com/lsqh/39038.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)