云架构那些事儿:数据层存储云化的实践

云架构那些事儿:数据层存储云化的实践

业务上云,在面临海量的业务数据,如何在层出不穷的数据库中选择适合自身业务应用的解决方案,成为架构设计的难点。

传统的集中化存储,如将所有数据存储在Oracle中的方式已经没有办法满足现在多样的数据类型与使用要求。采用“分而治之”的方式,更符合现在云化架构的整体实现思路。

这里为大家分享一下数据库的选型原则,并提供一个真实的案例给大家作为参考。

选型原则:

云架构那些事儿:数据层存储云化的实践

如何选择合适的数据存储


数据层选型时,要考虑一下六个数据特点,选择合适的数据存储解决方案。

  • 数据类型 , 关系型数据、KV数据、视频、图片、文件
  • 数据量 , 万级、百万级、千万级、亿级别
  • 实时性/一致性 , 实时访问、准实时访问、分钟级延迟、小时级延迟、天级查询
  • 并发度 , QPS、TPS、响应时间
  • 使用场景 , 实时业务、报表分析、历史归档数据、多维查询、正则查询
  • 数据来源 , 文件、数据同步、消息队列、数据库

结合以上六点,选择合适的数据存储技术形成数据层解决方案。

这里举几个选型的例子:

  • 海量关系型数据+实时性高+高并发:可以选择分布式关系型数据库,商业的如阿里云DRDS、POLARDB,开源的如MyCAT等。
  • 多维度查询+正则查询+准实时+海量数据存储:可选择搜索引擎,如Elasticsearch
  • 规则类数据/高并发KV类数据:Redis/Redis Cluster
  • 历史归档数据:阿里DRDS/Hbase
  • 视频图片文件:可选择分布式文件系统或对象存储,商业的如阿里OSS,开源的HDFS、FastDFS、GlusterFS、CephFS

真实案例

以下是我们在某大型企业使用的数据存储及使用方案:

云架构那些事儿:数据层存储云化的实践

某大型企业数据存储解决方案


首先对数据存储解决方案形成三层架构:

  • 第一层,实时数据层

使用Redis实现高并发KV数据的缓存、Session共享。

使用阿里OSS作为大批量文件的存储。

使用阿里DRDS作为核心业务数据库。

使用ElasticSearch实现多维数据查询与正则查询。

  • 第二层,数据传输层

使用阿里DTS作为数据同步通道,当然你可以选择开源的如Otter/Canal来构建自己的数据同步通道,实现近实时的数据同步。

使用DTS-writer,将数据同步至异构数据库,实现异构数据库的数据同步,可大幅降低将由应用将数据存储在各个独立产品的研发代价。

  • 第三层,离线数据层

使用HBASE作为归档数据存储,实现数据挖掘与报表功能

使用阿里DRDS为生产提供离线/冷数据的查询

使用阿里RDS作为同步部分关键数据,为打造业务生态提供个性业务数据

最后,从设计本身的角度,任何得到认可的数据库产品都有价值,都可以作为数据存储架构选型的备选项,但由于数据库本身的重要性,使用团队熟悉的技术往往可以降低整体风险。选择使用新技术务必要进行大量验证。

仔细思考,你一定会有所收获。

欢迎关注:云架构那些事儿,专注实用性云架构分享与IT技术分享。

营运型手游开发、测试、正式的三阶段开发架构

在手机游戏的畅销排行榜上,可以看到大多数的游戏都是营运型的游戏。所谓的营运型游戏,指…的是游戏的开发并不是上架后就结束,而是需要持续的配合游戏营运的需求,进行游戏的更新、…内容调整以及后续内容的开发。这样的游戏虽然相对来说获利较佳,不过对于游戏开发团队来说

电商网站的商品详情页系统架构

数据库中存放了所有的商品信息,页面静态化系统,将数据填充进静态模板中,形成静态化页面,推入Nginx服务器。

web应用单点登录原理与简单实现

一、单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。

游戏编程开发《球球大作战》源码解析:服务器与客户端架构

鉴于agar.io类型游戏的火爆场面,一些公司纷纷效仿,一时间出现各种《大作战》类型的游戏。出于学习的目的,亦是做些技术和方案储备,接下来会有大概篇文章,分析下面这款使用nodejs编写的开源“球球大作战”。由于该游戏采用服务端运算、客户端显示的方式,服务

老公月入五万的程序员夫人,都过上贵妇的生活了么?

作者:程序人生https://blog.csdn.net/csdnsevenn/article/details/之前被一篇文章刷......夫人们要当贵妇,都只是一个梦,而已。架构师小秘圈聚集万架构师的小圈子长按二维码 ▲关注「架构师小秘圈」公众号谢谢老板,点个好看↓