博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TIDB介绍 新数据库趋势
阅读量:5791 次
发布时间:2019-06-18

本文共 1547 字,大约阅读时间需要 5 分钟。

 

TIDB是什么? 

TIDB 受谷歌Spanner和F1的论文启发的new sql数据库,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性,同类数据库还包括巨杉数据库。

TiDB的原理与实现 

TiDB 架构是 SQL 层和 KV 存储层分离,相当于 innodb 插件存储引擎与 MySQL 的关系。

有了 TiKV,TiDB 层只需要实现 SQL 层,再加上 MySQL 协议的支持,应用程序就能像访问 MySQL 那样去访问 TiDB 了

TiDB的成功案例 

目前今日头条,摩拜单车、凤凰网、游族网络等公司采用了TIDB数据库。 
这些企业采用TIDB的主要原因包括:

1. 兼容mysql2. 分布式存储,扩展能力强。3. 支持OLTP4. 可以直接利用TiSpark做实时分析。5. 稳定的高可用性6. 无阻塞在线DDL

 

采用TIDB的公司需求具有的共同点:

1. 拥有数亿以上记录的数据,希望在保持海量数据存储能力的前提下保留良好的OLTP性能和QPS性能2. 希望数据库拥有实时计算的能力

 

TIDB的架构 

TiKV Server:负责数据存储,是一个提供事务的分布式 Key-Value 存储引擎; 
PD Server:负责管理调度,如数据和 TiKV 位置的路由信息维护、TiKV 数据均衡等; 
TiDB Server:负责 SQL 逻辑,通过 PD 寻址到实际数据的 TiKV 位置,进行 SQL 操作。

TiDB的特性

1. 水平扩展:包括计算能力和存储能力。TiDB Server 负责处理 SQL 请求,随着业务的增长,可以简单的添加 TiDB Server 节点,提高整体的处理能力,提供更高的吞吐。TiKV 负责存储数据,随着数据量的增长,可以部署更多的 TiKV Server 节点解决数据 Scale 的问题。PD 会在 TiKV 节点之间以 Region 为单位做调度,将部分数据迁移到新加的节点上。2. 高可用:TiDB/TiKV/PD 这三个组件都能容忍部分实例失效,不影响整个集群的可用性

 

TIDB的部署

1. 因 TiDB 和 PD 对磁盘 IO 要求不高,所以只需要普通磁盘即可。2. TiKV 对磁盘 IO 要求较高。TiKV 硬盘大小建议不超过 500G,以防止硬盘损害时,数据恢复耗时过长。整个 TiDB 架构是面向未来、面向海量数据高并发场景,底层存储技术(如数据定位 seek)都是针对当前主流的 SSD 进行设计和优化的,不会对传统的 SATA/SAS 机械硬盘再进行优化。(参考凤凰网的部署方案)3. 部署工具使用了 TiDB-Ansible。TiDB-Ansible 是 PingCap 基于 Ansible playbook 功能编写了一个集群部署工具叫 TiDB-Ansible。使用该工具可以快速部署一个完整的 TiDB 集群(包括 PD、TiDB、TiKV 和集群监控模块)

 

TIDB的监控方案 

Pincap 团队给 TiDB 提供了一整套监控的方案,他们使用开源时序数据库 Prometheus 作为监控和性能指标信息存储方案,使用 Grafana 作为可视化组件进行展示。(参考今日头条的方案) 
监控的原理:

1. 在 client 端程序中定制需要的 Metric2. Push GateWay 来接收 Client Push 上来的数据,统一供 Prometheus 主服务器抓取。3. AlertManager 用来实现报警机制,使用 Grafana 来进行展示

转载于:https://www.cnblogs.com/gaoyuechen/p/10220969.html

你可能感兴趣的文章
自定义flex组件使用标签方式添加子组件
查看>>
我的友情链接
查看>>
Java记录 -49- LinkedList源码剖析
查看>>
Unity在Android和iOS中如何调用Native API (1)
查看>>
Linux LVM逻辑卷管理器
查看>>
翻身的废鱼——论PHP从入门到放弃需要多久?19
查看>>
JSP-09-使用EL显示数据
查看>>
EasyPHP-Devserver-17的坑位
查看>>
【转】System.Threading.Timer使用心得
查看>>
2015互联网校招总结—一路走来
查看>>
请设计一个一百亿的计算器
查看>>
用几何画板画七边形的方法
查看>>
洛谷 P1149 火柴棒等式
查看>>
Delphi 设置WebBrowser 代理服务器 与 UserAgent
查看>>
Spring的注解学习(ioc,aop结合)
查看>>
Silverlight MVVM 模式入门教程
查看>>
Linux下的压缩解压缩命令详解
查看>>
.net core build docker image
查看>>
C#4.0中的协变和逆变
查看>>
ansible之service和server模块
查看>>