选择高性能NoSQL数据库的5个步骤
来源:Redislabs
作者:Shabih Syed
翻译:Kev×××)
构建在线和运营应用程序的开发团队越来越多地选择一类新的数据库来支持它们。它被称为"NoSQL"或"Not Only SQL",包括Redis,MongoDB等非SQL数据库。从可用的NoSQL解决方案中选择正确的数据库,是您在设计新应用程序时可以做出的最重要决策之一。因此,如果您正在评估NoSQL数据库,请继续阅读,下面的建议将有助于您的选择。
选择数据库时,您可以遵循以下五个高级步骤:
定义NoSQL数据库的目标。
确定吞吐量和延迟要求。
为项目选择正确的数据库。
选择 托管服务提供商或自己动手(DIY)之间做出选择。
确定 适合您情况的最佳部署模式。
1 定义数据库的目标
使用NoSQL数据库的目的可能是:为移动设备上的数以千计的用户提供个性化的数字体验;为处理后端支付的应用程序存储数据; 管理短暂的临时数据;或作为一个记录系统存储持久数据。您甚至可以在特定场景的同一数据管道中涉及多种类型的数据库。 不管你在哪种场景中使用,包括如何收集,提取有用的数据来进行分析和在数据管道中定义NoSQL数据库的特定功能都是非常重要的。
2 确定吞吐量和时延要求
在今天这个时代,用户期待即时体验。通常,这需要您的应用程序的响应时间<100毫秒。否则,它将被认为低效,这样您可能会失去用户的兴趣。但是,一些应用程序 - 例如Games,通信和金融交易系统 - 要求其数据库的响应时间低至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编排工具集成的高可用性和易扩展性。更快的吞吐量,最小的延迟和保证正常运行时间全球多云部署操作使用托管服务提供商可节省大量成本。
更多优质中间件技术资讯/原创/翻译文章/资料/干货,×××