开源数据库中间件 Vitess:一组旨在使 web 应用的 MySql 数据库的水平扩展简单化的服务器和工具集

概述

Vitess 是一个用于对 MySql 进行水平扩展的存储平台。经过优化,它可以像在专用硬件上那样有效地运行在云体系。它集 MySql 数据库的很多重要特性和 NoSQL 数据库的可扩展性于一体。

可扩展性

  • 消除了高内存开销的 MySQL 连接
  • 随意扩展你的数据库,无须添加分片逻辑到你的应用程序
  • 提供内置分片
  • 以最小只读停机时间支持现场重新切分

性能

  • 对影响数据库性能的查询自动重写
  • 使用代理服务器缓存机制来协调查询并防止重复查询同时达到你的数据库

易管理性

  • 使用一个锁服务器如 ZooKeeper 或 etcd 跟踪和管理服务器,让你的应用程序和数据库拓扑之间松耦合
  • 自动处理功能,如主机故障转移和备份,最小化任何必要的停机时间

特性

Vitess 的一些关键特性浏览:

连接池

每个 MySql 连接都会有一个内存开销,除了获取连接的大量 CPU 开销之外,默认 MySql 配置下的内存开销是 256KB 左右。Vitess 基于 BSON 的协议创建的是非常轻量级的连接(每个连接在 32KB 左右),这使得 Vitess 服务器能够轻松同时处理数千个连接。Vitess 使用了 Go 语言的卓越的并发支持将这些连接映射到一个 MySql 连接池。

分片管理

随着你的数据库存储的增长,你可能会想要对其进行水平切分。悲剧的是 MySql 天生不支持分片,所以你将需要自己写分片代码并将分片逻辑添加到你自己的应用程序。
Vitess 能够以最小的只读的停机时间进行切分。例如,它支持分裂复制,把复制流分开这样以后的一台分片主机只会接收到会影响到其自身新分片中的某行的事务。此外,Vitess 还支持自定义分片方案,如果你已经有一个现成方案可以直接应用于 Vitess。

流程管理

Vitess 通过各种场景下(如故障转移、主从复制)的自动处理来帮助你管理你的数据库实例的生命周期。Vitess 也跟踪所有集群配置中的的元数据这样不同的集群视图始终是最新的而且对于不同的客户端也能始终保证其一致性。此外,你自己的应用程序也无需去跟踪数据库拓扑的改变。
原文链接: http://vitess.io/
posted @ 2015-08-19 17:08  Defonds  阅读(60)  评论(0编辑  收藏  举报