高品质的音视频能力是怎样的? | Qcon 全球软件开发大会·上海站邀请函 了解详情
写点什么

选择高性能 NoSQL 数据库的 5 个步骤

  • 2019-10-24
  • 本文字数:1575 字

    阅读完需:约 5 分钟

选择高性能NoSQL数据库的5个步骤

构建在线和运营应用程序的开发团队越来越多地选择一类新的数据库来支持它们。它被称为“NoSQL”或“Not Only SQL”,包括 Redis,MongoDB 等非 SQL 数据库。从可用的 NoSQL 解决方案中选择正确的数据库,是您在设计新应用程序时可以做出的最重要决策之一。因此,如果您正在评估 NoSQL 数据库,请继续阅读,下面的建议将有助于您的选择。


选择数据库时,您可以遵循以下五个高级步骤:


1.定义 NoSQL 数据库的目标。


2.确定吞吐量和延迟要求。


3.为项目选择正确的数据库。


4.选择 托管服务提供商或自己动手(DIY)之间做出选择。


5.确定 适合您情况的最佳部署模式。


1 定义数据库的目标

使用 NoSQL 数据库的目的可能是:为移动设备上的数以千计的用户提供个性化的数字体验; 为处理后端支付的应用程序存储数据; 管理短暂的临时数据; 或作为一个记录系统存储持久数据。您甚至可以在特定场景的同一数据管道中涉及多种类型的数据库。


不管你在哪种场景中使用,包括如何收集,提取有用的数据来进行分析和在数据管道中定义 NoSQL 数据库的特定功能都是非常重要的。


2 确定吞吐量和时延要求

在今天这个时代,用户期待即时体验。通常,这需要您的应用程序的响应时间<100 毫秒。否则,它将被认为低效,这样您可能会失去用户的兴趣。但是,一些应用程序 - 例如游戏,通信和金融交易系统 - 要求其数据库的响应时间低至 13 毫秒。


除时延外,您还需要确定吞吐量要求。例如,您的数据库可以同时处理数千个同步数据流,同时时延低至 50 毫秒或更短吗?


了解对数据库的性能要求对于确保用户体验的质量是非常重要的。


3 为项目选择正确的数据库

通常,开发人员选择 NoSQL 数据库是因为它们需要半结构化或非结构化数据类型,这种存储结构具有灵活性,查询简单,快速的事务响应,可存储大量数据以及通过分布式计算和存储的快速且廉价的可扩展性。您可以通过 CAP 定理进一步缩小您的选择范围,该定理在维基百科上定义如下:


  • 一致性:所有节点访问同一份最新的数据副本。

  • 可用性:每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据。

  • 分区容错性:即使由于网络问题节点之间有信息丢失或延迟,系统仍然保持继续运行。


根据 CAP 定理,您可以优先考虑 CA,AP 或 CP。这有助于您确定哪个数据库最适合您的应用程序。


4 在托管服务提供商和自建(DIY)之间进行选择

托管服务解决方案有丰富的经验来处理数据库的日常管理操作。这使您能够专注于自己应用程序的创新,同时提高工作效率。如果您朝这个方向考虑,请选择能够在保证正常运行的情况下,同时可以达到您要求的吞吐量和时延要求的数据库服务提供商。


当然,外包可能并非总是如此,在这种情况下,您应该考虑哪个数据库提供商提供的软件版本支持大规模配置,安排和管理容器。请务必检查您最期望的能力,例如可伸缩性,双活部署,吞吐量和时延 - 并在 POC 测试期间验证它们。


5 确定部署模式

理想情况下,您需要一个数据库提供者,它允许您在您选择的任何环境(无论是公共还是私有)中运行数据库,并完全控制您的数据和配置。您的数据库软件也应该可以作为 Docker 镜像进行使用,这将允许您的企业开发人员在基于 Docker 的微服务架构中使用它。


如果您使用私有平台即服务(PaaS),请确保您的数据库提供商支持私有 PaaS 环境中的无缝扩展和轻松高可用性,例如 Pivotal,Bluemix,Heroku 等。


如果选择托管服务提供商,请确认它们支持跨多云的群集部署(包括 AWS,Azure 和 Google)。


正确选择 NoSQL 数据库的好处

经过深思熟虑的决策的一些优点包括:


  • 保证开发,测试和生产环境之间的连续性,缩短产品上市时间。

  • 与 Docker 编排工具集成的高可用性和易扩展性。

  • 更快的吞吐量,最小的延迟和保证正常运行时间

  • 全球多云部署操作

  • 使用托管服务提供商可节省大量成本


本文转载自公众号中间件小哥(ID:huawei_kevin)。


原文链接:


https://mp.weixin.qq.com/s/juwzJc0Zq88K5zLZQwr80w


2019-10-24 10:03719

评论

发布
暂无评论
发现更多内容

JavaScript Promise 的使用技巧

Jerry Wang

JavaScript Promise 异步编程 await 8月月更

万丈高楼平地起--java基础语法

Geek_ba5ac7

Java core

前端线下培训的就业前景怎么样?

小谷哥

深圳大数据编程培训机构哪家比较靠谱

小谷哥

学习大数据课程后好找工作吗?

小谷哥

【直播回顾】OpenHarmony知识赋能六期第五课—WiFi子系统

OpenHarmony开发者社区

OpenHarmony

软银从阿里套现340亿美元,阿里、腾讯为何纷纷被大股东撤仓?

雨果

阿里云 软银 DaaS数据即服务

Kyligence 连续三年入选 Gartner 增强数据分析推荐厂商

Kyligence

数据分析 Gartner

视频1对1源代码——简单的搭建方式也有技术要求

开源直播系统源码

软件开发 直播系统源码 语音直播系统源码 语音直播

音视频开发进阶|音频编解码的必要性解读与格式选取

ZEGO即构

Linux面试最高频的5个基本问题

千锋IT教育

zzcase&接口自动化-质&效的探索

转转技术团队

测试工具 用例设计平台开发

云原生(十四) | Kubernetes篇之深入万物基础-容器

Lansonli

云原生 8月月更

5 个 JavaScript “罕见”原生的 API

掘金安东尼

JavaScript 前端 8月月更

Synchronized锁升级原理与过程深入剖析:无锁>偏向锁>轻量级锁>重量级锁

Java全栈架构师

Java 程序员 面试 程序人生 多线程

如何有效进行回顾会议(中)?

敏捷开发

Scrum 敏捷开发 回顾会 Scrum团队

karmada调度策略想要实现,这三个组件必须了解 | K8S Internals系列第4期

BoCloud博云

容器 云原生 k8s

上海前端培训学习好就业难吗

小谷哥

浅谈-大数据工程师面临的困境和要学习的技术

Geek_c8a6a0

最佳实践|Apache Doris 在小米数据场景的应用实践与优化

SelectDB

数据库 数据分析 小米 Doris OLAP 场景实践

Python也许很友好,但它也容易弄得一团槽

梦想橡皮擦

Python 爬虫 8月月更

北京JAVA开发3年,拿到美团35K的offer面试心得(全干货)

程序知音

Java 程序员 java面试 后端技术 Java面试八股文

Java编程学习好就业薪资高吗

小谷哥

区块链智能合约盲盒模式系统开发

l8l259l3365

选择高性能NoSQL数据库的5个步骤_文化 & 方法_Redislabs_InfoQ精选文章