var _hmt = _hmt || []; (function() {   var hm = document.createElement("script");   hm.src = "https://hm.baidu.com/hm.js?8c9c5a8618dc4aea3be27b32962e5871";   var s = document.getElementsByTagName("script")[0];    s.parentNode.insertBefore(hm, s); })();
400 050 6600
数据分析师

手机号

验证码

30天自动登录

选择适合您的微服务的数据库

来源:CPDA数据分析师网 / 作者:数据君 / 时间:2020-09-02

如何为您的微服务选择正确的数据存储

设计微服务时要回答的重要问题之一是:“如何为每种微服务选择合适的数据存储?” 您应该将性能,可靠性和数据建模要求纳入选择过程,性能要求使用微服务,设计每项服务以提供吞吐量非常重要。如果一个微服务成为数据流的瓶颈,那么整个系统可能会崩溃。

 

1、读取性能:读取性能的常用指标是每秒操作数或运行查询的速度与检索结果的速度的组合

检索结果的速度取决于您可以组织和索引数据的程度。例如,电子商务产品目录微服务可能会运行应用多个参数(例如产品类别,价格,用户评分等)的查询。为此微服务选择的数据库必须首先允许您组织数据以运行您的查询速度更快,然后也能够满足每秒操作数的要求。

2、写入性能:这里的简单指标是确定您的微服务每秒执行的写入操作数。收集和处理瞬态数据的微服务需要能够每秒执行数千(甚至数百万)次写入操作的数据库。

3、延迟:提供即时用户体验的微服务需要低延迟数据库,并且在其数据库附近部署微服务将限度地减少网络延迟。

4、资源效率:反映微服务的设计原理及其敏捷性,数据库占用空间必须小,同时保留按需扩展的能力。

5、调配效率:微服务组件需要可用于快速开发,测试和生产,需要任何数据库服务来支持每秒按需创建数百个实例。

 

数据建模要求

微服务相对于单片架构的优势在于,每个服务都可以选择适合其自身数据模型的数据库。微服务架构可以采用基于键值,图,层次,流和搜索引擎等的数据模型。

 

数据性质

并非所有微服务都在其生命周期的同一阶段处理或管理数据。对于某些微服务,数据库可能是事实的来源,但是对于其他微服务,它可能只是临时存储。

 

瞬态数据:数据摄取微服务通常在将事件传递到适当的目的地之前先处理诸如事件,日志,消息和信号之类的信息。这样的微服务需要能够在支持高速写入的同时临时保存数据的数据存储。由于暂存数据不会存储在其他任何地方,因此微服务使用的数据存储的高可用性至关重要-此数据不会丢失。

临时数据:提供即时用户体验的微服务通常依赖于高速缓存来存储访问量的数据。一个示例是缓存服务器,这是一个临时数据存储,其目的是通过实时提供信息来改善用户体验。

 

尽管用于临时数据的数据存储区不存储数据的主副本,但必须将其设计为具有高可用性,因为故障可能会导致用户体验问题和收入损失。

1、运营数据:从用户会话中收集的信息(例如用户活动,购物车内容,点击次数,喜欢次数等)被视为运营数据,这些类型的数据支持即时,实时分析,通常由直接与用户连接的微服务使用,对于此类数据,耐久性,一致性和可用性要求很高。

 

2、交易数据:付款处理和订单处理之类的数据必须作为记录存储在数据库中。即使事务量增加,使用的数据存储也必须采用经济有效的存储方式。

 

选择满足您要求的数据库的挑战

市场上有300多种数据库可供选择,为您的微服务选择合适的数据库听起来像是一项艰巨的任务,您可以从列表中找到提供所需的所有功能的数据库,但是面临的挑战是找到一个不仅满足您的标准而且轻巧的数据库,为了进行高效的编排和管理,通常将微服务以轻巧的内存占用空间进行容器化。

 

操作上的考虑常常促使架构师为所有用例(通常是关系数据库)寻求的公分母

关系数据库的缓慢性能不适合依赖于亚毫秒级延迟访问数据的微服务,也无法提供数据模型的灵活性,但是每秒数量或读/写操作的性能可与关系数据库相媲美。

 

Prev article

机器学习在数据管理中的作用

Next article

数据库和微服务:技术和方法入门

数据分析师

报名咨询

数据分析师

报名缴费

数据分析师

客服中心

数据分析师

课程服务

数据分析师

认证服务