标签 dynomite 下的文章

Dynomite 简介

Dynomite是NetFlix对亚马逊分布式引擎Dynamo的一个开源通用实现,它不仅支持基于内存K/V数据库,
还支持持久化的MySQL、BerkeleyDb、LevelDb等数据库,并具有简单、高效、支持跨数据中心的数据复制功能等优点。
Dynomite的最终目标是提供数据库存储引擎不能提供的简单、高效、跨数据中心的数据复制功能。目前,Dynomite已经实现了对Redis和Memcached的支持。

Dynomite 安装配置

Build

从源代码构建Dynomite并启用调试日志,禁用assertions:

$ git clone git@github.com:Netflix/dynomite.git
$ cd dynomite
$ autoreconf -fvi
$ ./configure --enable-debug=yes    // 开发环境需要,生产环境不需要
$ make
$ src/dynomite -h

- 阅读剩余部分 -

简介和概述

Netflix长期以来一直是微服务模式的倡导者。该模型提供更高的可用性,故障恢复能力和松耦合。这种架构的缺点是潜在的用户体验。每当客户加载主页或开始流式传输电影时,都会有许多微服务完成该请求。这些微服务中的大多数使用某种有状态的系统来存储和提供数据。几毫秒可以快速加起来,并产生多秒的响应时间。

Netflix的云数据库工程团队一直在寻找方法,从应用程序的数据库响应时间中减少毫秒,同时保持我们的本地高可用性和多数据中心高可用性的目标。考虑到这个目标,我们创建了Dynomite。

受Dynamo白皮书以及Apache Cassandra的经验启发,Dynomite是一个分片和复制层。Dynomite可以将现有的非分布式数据存储(如Redis或Memcached)制作成完全分布式的多数据中心复制数据存储。

服务器架构

动机

在开源世界中,有各种单服务器数据存储解决方案,例如Memcached,Redis,BerkeleyDb,LevelDb,Mysql(数据存储)。这些单服务器数据存储的可用性故事通常最终会成为主从设置。一旦流量需求超过这个设置,下一个合乎逻辑的进程就是引入分片。大多数人会同意这种设置不是微不足道的。而且,管理来自不同分片的数据对于应用程序开发人员来说也是一项挑战。

- 阅读剩余部分 -