Vitess

云原生数据库系统
授权协议 BSD
开发语言 Google Go
所属分类 数据库相关、 数据库调整和优化
软件类型 开源软件
地区 不详
投 递 者 游勇军
操作系统 Linux
开源组织 CNCF
适用人群 未知
 软件概览

Vitess 云原生数据库系统是用于部署、扩展和管理大型 MySQL 实例集群的数据库解决方案。它是一个分布式 MySQL 工具集,它可以自动分片存储 MySQL 数据表,将单个 SQL 查询改写为分布式发送到多个 MySQL Server 上,支持行缓存(比 MySQL 本身缓存效率高)与复制容错等。

Vitess 最初是 YouTube 于 2010 年创建的内部解决方案,2018 年进入 CNCF 孵化。GitHub、JD.com、Pinterest、Slack、Square、Stitch Labs 与 YouTube 等公司正在生产和部署的各个阶段中使用 Vitess。

Vitess 可解决以下问题:

  1. 支持您对 MySQL 数据库进行分片来扩展 MySQL 数据库,应用程序无需做太多更改。
  2. 从物理机迁移到私有云或公共云。
  3. 部署和管理大量的 MySQL 实例。

特性

  • 性能提升

    • 连接池 - 将前端应用程序以多路复用的方式映射到MySQL连接池以优化性能。
    • 查询结果重用 – 对于相同结果集的查询,多个查询并发查询时,vttablet会识别和管理相同查询,等待第一个查询结果完成,并发送给所有的调用者。
    • 事务管理 – 限制并发事务数、管理事务超时时间以优化总体吞吐量。
  • 保护机制

    • 查询重写和清理 – 避免漫无目的的更新,对大查询添加limits。
    • 查询黑名单 – 可通过自定义规则以防止可能存在问题的查询命中数据库。
    • 查询超时 – 可自定义查询超时时间值,Vitess将干掉超时的查询。
    • 表别访问权限控制定义 – 可以针对不同的接入用户指定表的访问控制权限 (ACLs)。
  • 监控

    • 性能分析: Vitess提供工具可让您监控,诊断和分析数据库性能。
    • 流式查询 – 使用传入查询列表来提供OLAP工作。
    • 更新流 – 服务器流式传输数据库中更改的行列表,可用作将更改传播到其他数据存储的机制。
  • 拓扑管理工具

    • Master管理工具(用于reparent处理)
    • 基于Web GUI的管理端
    • 可工作于多个数据中心/区域的设计
  • 拆分

    • 几乎无缝的动态分片拆分
    • 支持垂直和水平分片拆分
    • 多种分片方案,支持自定义分片方案

架构

下图说明了 Vitess 的组件

  • CentOS7本地安装Vitess 一、说明 背景:首先使用vitess官网的中文文档进行安装,过程中报了没有etcd的错,觉得很奇怪,后来笔者发现当前日期下,vitess官网的中文文档安装流程和英文文档安装流程竟然不一样,之后使用英文版本的安装流程安装成功,记录过程如下。 系统:CentOS7 版本:Vitess-14.0.0 说明:CentOS的yum已改为阿里源 二、部署过程: 部署过程主要

  • vitess We will be presenting Vitess at the upcoming MySQL conference: http://www.percona.com/live/mysql-conference-2012/sessions/scaling-mysql-databases-web. If you are planning to go, the following p

  • 支持的mysql 版本 5.6-8.0,但是5.6 从2021年2月不更新了,所以建议5.7之后版本 事务隔离级别 vitess: read committed mysql default: pepeatable read SQL语法 https://github.com/vitessio/vitess/blob/main/go/vt/vtgate/planbuilder/testdata/uns

  • 本地 k8s 集群跑 vitess operator 和 orchestrator,遇到不少坑,简单记录一下。 kubeadm 安装 k8s 集群 环境: ubuntu12.04 LTS,参考这里。 kubeadm init $ sudo kubeadm init --pod-network-cidr=10.244.0.0/16 根据文档,需要指定 cidr ,否则组网会有问题。 安装 vite

  • User Management and Authentication 用户管理和认证 vitess通过VTGate有自己独特的方法管理用户和权限,因此,如果通过VTGate发送,create user和grant...语法将不会有效果。 mysql> create use chenhao identified by 'chenhao'; ERROR 1105 (HY000): vtgate: ht

 相关资料
  • 一、事务 概念 ACID AUTOCOMMIT 二、并发一致性问题 丢失修改 读脏数据 不可重复读 幻影读 三、封锁 封锁粒度 封锁类型 封锁协议 MySQL 隐式与显示锁定 四、隔离级别 未提交读(READ UNCOMMITTED) 提交读(READ COMMITTED) 可重复读(REPEATABLE READ) 可串行化(SERIALIZABLE) 五、多版本并发控制 基本思想 版本号 Un

  • 事务处理 索引

  • 本文向大家介绍iOS中sqlite数据库的原生用法,包括了iOS中sqlite数据库的原生用法的使用技巧和注意事项,需要的朋友参考一下 在iOS中,也同样支持sqlite。目前有很多第三方库,封装了sqlite操作,比如swift语言写的SQLite.swift、苹果官网也为我们封装了一个框架:CoreData。 它们都离不开Sqlite数据库的支持。 本文主要介绍下,如何在swift中使用原生的

  • 更新时间:2019-06-11 16:51:29 节点简介 云数据库MySQL节点提供访问云数据库RDS的能力,以支持对数据库进行增删改查操作。 使用场景 如果在服务开发中,您需要将数据存储到您的云数据库RDS中,或者对您的数据库进行查询、更新、删除操作,可以使用云数据库MySQL节点。常用场景是将设备上报的数据转储到云数据库RDS中。 配置 连接地址 按照如下步骤操作查看,使用外网地址。 端口号

  • 问题内容: 在数据库中建立适当的关系对数据完整性以外的其他功能没有帮助吗? 它们会改善还是阻碍性能? 问题答案: 我不得不说,适当的关系将比省略它们更好地帮助人们理解数据(或数据的意图),特别是因为维护它们的总成本非常低。 它们的存在不会影响性能,除非是在体系结构方面(正如其他人指出的那样,数据完整性有时会导致外键冲突,这可能会产生某些影响),但是IMHO的许多好处(如果正确使用,则不胜枚举)。

  • 楼主研一,但是误投了暑期实习,所以顺便就面了 1.在滴滴工作做的内容 2.做短视频后端的背景是什么?为什么要做? 3.这个项目做了哪些东西? 4.关注的表是怎么设计的?关注和被关注者关系存储在一行么?存储在一行又什么问题?不存在一行又有什么问题?(没搞懂什么意思)(回答的不好) 5.项目中rabbitmq用在哪些场景?(关注和点赞) 6.rabbitmq的架构说一下 7.rabbitmq是否有消息