您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 数据库 > 正文

如何选择高性能NoSQL数据库

发表于:2019-07-24 作者:快快网络 来源:今日头条

很多公司会选择“NoSQL”或“Not Only SQL”新型数据库来支撑在线和运营程序服务,那么我们要如何选择高性能NoSQL数据库?


1. 为数据库定义目标

NoSQL数据库的目标可能是为移动设备上的数千名用户提供个性化数字体验,为后端支付处理应用程序存储数据,管理有一定时间生活的短暂数据,或将持久数据存储为系统记录。你甚至可以在特定方案的同一数据管道中涉及多种类型的数据库。

无论用例如何,在数据管道中定义NoSQL数据库的特定功能非常重要,包括如何收集,提取和提供数据以进行分析。

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

通常,这需要你的应用程序的响应时间<100毫秒。否则,它将被视为缓慢,你可能会失去用户的兴趣。但是,一些应用程序 - 例如游戏,通信和金融交易系统 - 要求其数据库的响应时间低至13毫秒。

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

了解将对数据库提出的要求对于确保用户体验的质量非常重要。

3. 为正确的作业选择正确的数据库

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

一致性:每次读取都会收到最近的写入或错误。

可用性:每个请求都会收到(非错误)响应 - 不保证它包含最近的写入。

分区容差:尽管节点之间的网络丢弃(或延迟)任意数量的消息,系统仍继续运行。

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

4. 选择托管服务提供商和自己动手(DIY)

托管服务解决方案使用经验丰富的资源处理数据库的日常管理。这使你自己的资源能够专注于应用程序所需的创新和效率。如果朝这个方向发展,请评估提供数据库即服务选项的第三方选项,并选择能够在保证正常运行时间的同时处理吞吐量和延迟要求的提供商。

当然,外包可能并不总是可选的,在这种情况下,应该考虑哪些数据库提供商提供的软件版本支持大规模配置,调度和管理容器。请务必检查你最期望的功能,例如可伸缩性,主动 - 主动部署,吞吐量和延迟 - 并在概念验证试验期间对其进行验证。

5. 确定部署模式

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

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

如果选择托管服务提供商,请确认它们支持跨多云提供商的群集部署。