一,什么是Vitess
A database clustering system for horizontal scaling of MySQL
由于MySQL数据库越来越多,大型的mysql集群越来越无法保证扩展性,所以在nosql和mysql中间通过中间件来实现mysql集群的分片管理。
也就是
- How to move hundreds of MySQL databases into kubernates?
- Sharded mysql on kubernetes to optimize huge DB
vitess是一个用于部署 扩展和管理大型mysql实例集群的数据库解决方案。有以下优势
1.支持对Mysql数据库进行分片扩展,无需应用程序做太多更改
2.从物理机迁移到云
3.部署和管理mysql实例
相对应的带来的好处就是提升性能/保护机制/易于部署大型集群(可见文末)
下图是RDBMS和Nosql以及vitess的比较,可以让mysql越来越有nosql的优势。同时vitess的一系列核心组件使用go编写,只有上层逻辑及client用java,也占有一些优势(后期有时间补)
二,Vitess的基本概念
cell
指一个网络资源,在cell里可以放置一组服务器集群,相当于计算单元
keyspace