11.云原生分布式数据库之TIDB

云原生专栏大纲

文章目录

  • 为什么使用TIDB
    • 后端视角
    • 运维视角
    • 基础架构视角
  • TiDB Operator 简介
  • 软件版本要求
  • 部署tidb
  • TIDB工具
  • helm常用命令
  • TIDB学习推荐资料

为什么使用TIDB

从后端视角、运维视角和基础架构视角来看,使用 TiDB 作为数据库系统可以获得分布式架构、高可用性、强一致性、事务支持、水平扩展、高性能、简化运维、灵活的扩展和配置、集成的监控和告警等优势。这些优势使得 TiDB 成为处理大规模数据和高并发请求的理想选择,并能够满足复杂的业务需求和运维要求。

后端视角

  1. 分布式架构和高可用性:TiDB 是一个分布式数据库系统,采用分布式架构和数据分片技术,可以将数据分布在多个节点上。这种架构使得 TiDB 具有高可用性和容错性,即使某个节点发生故障,系统仍然可以继续提供服务,确保业务的连续性。
  2. 强一致性和事务支持:TiDB 提供强一致性和事务支持,符合 ACID 特性。它使用分布式一致性协议来保证数据的一致性,在多节点之间实现事务的隔离和提交。这使得 TiDB 可以处理复杂的业务逻辑和数据一致性要求。
  3. 水平扩展和高性能:TiDB 具有水平扩展和负载均衡的能力。通过添加更多的节点,可以实现数据的水平分片和负载均衡,提供更高的吞吐量和更低的延迟。这使得 TiDB 能够处理大规模数据和高并发请求,满足高性能的需求。

运维视角

  1. 简化运维工作:TiDB 提供了简化运维的功能,减少了运维人员的工作量。它具有自动化的故障检测和恢复机制,可以自动处理节点故障和数据复制等问题。此外,TiDB 还提供了集中式的管理界面和命令行工具,使得运维人员可以方便地监控和管理整个数据库集群。
  2. 灵活的扩展和配置:TiDB 具有灵活的扩展和配置选项。它支持在线扩容和缩容,可以根据负载情况动态调整集群的规模。此外,TiDB 还提供了丰富的配置选项,使得运维人员可以根据具体需求进行优化和调整,以获得最佳的性能和资源利用率。
  3. 集成的监控和告警:TiDB 集成了监控和告警功能,可以实时监控数据库集群的状态和性能指标,并根据预设的规则和阈值触发告警通知。这使得运维人员可以及时发现和解决潜在的问题,保证系统的稳定性和可靠性。

基础架构视角

  1. 分布式数据存储和计算:TiDB 的分布式架构使得数据可以分布在多个节点上,实现了分布式的数据存储和计算。这种架构可以提供更好的数据并行性和负载均衡,支持处理大规模数据和高并发请求。
  2. 弹性扩展和容错性:TiDB 具有弹性扩展和容错性的特点。通过添加更多的节点,可以实现系统的弹性扩展,以适应不断增长的数据和负载。同时,TiDB 的分布式架构还具有容错性,即使某个节点发生故障,系统仍然可以继续提供服务。
  3. 云原生和容器化支持:TiDB 支持云原生和容器化部署。它可以与容器编排平台(如 Kubernetes)集成,实现弹性伸缩和自动化管理。这使得 TiDB 可以更好地适应云环境和容器化部署的需求。

TiDB Operator 简介

TiDB Operator 是一个用于在 Kubernetes 上部署和管理 TiDB 集群的工具。TiDB 是一个开源的分布式关系型数据库,具有高可用性、可扩展性和水平扩展的特性,适用于处理大规模的数据和高并发的工作负载。
TiDB Operator 的主要功能是简化 TiDB 集群的部署、管理和运维。它基于 Kubernetes 的自定义资源定义(Custom Resource Definition,CRD)和控制器模式,提供了一组自定义资源和控制器,用于描述和操作 TiDB 集群的各个组件和配置。
以下是 TiDB Operator 的一些主要特点和功能:

  1. 自动化部署和扩展:TiDB Operator 可以自动化地部署和扩展 TiDB 集群。您可以通过定义 TiDBCluster 自定义资源来描述集群的拓扑结构、副本数量、存储配置等参数,TiDB Operator 将根据这些参数自动创建和管理相应的 Kubernetes 资源。
  2. 可靠的运维功能:TiDB Operator 提供了一些可靠的运维功能,包括自动备份和恢复、滚动升级、自动故障转移等。它可以监控集群的状态和健康状况,并根据需要执行相应的操作,以确保集群的高可用性和稳定性。
  3. 灵活的配置和扩展:TiDB Operator 允许您通过自定义资源和配置文件来灵活地配置和扩展 TiDB 集群。您可以定义 TiDBCluster、TiDBMonitor、BackupSchedule 等自定义资源来指定集群的各种配置和行为,以满足特定的需求。
  4. 监控和告警:TiDB Operator 集成了 Prometheus 和 Grafana,可以提供集群的实时监控指标和可视化。您可以通过自定义资源 TiDBMonitor 来配置监控规则和告警策略,以及在集群出现问题时发送告警通知。

TiDB Operator 简化了在 Kubernetes 上部署和管理 TiDB 集群的过程,提供了自动化的部署、可靠的运维功能和灵活的配置选项。它使得使用 TiDB 在容器化环境中更加便捷和高效。您可以访问TiDB Operator 简介 GitHub - pingcap/tidb-operator
通过之前文章《8.云原生存储之Ceph集群》介绍ceph部署也使用了Operator,简单总结Operator就是一个部署控制器,主要用于简化部署过程。

软件版本要求

软件名称版本
DockerDocker CE 18.09.6
Kubernetesv1.12.5+
CentOSCentOS 7.6,内核要求为 3.10.0-957 或之后版本
Helmv3.0.0+

上篇中已经讲述了centos升级操作

Kubernetes Master 节点的配置取决于 Kubernetes 集群中 Node 节点个数,节点数越多,需要的资源也就越多。节点数可根据需要做微调。

Kubernetes 集群 Node 节点个数Kubernetes Master 节点配置
1-51vCPUs 4GB Memory
6-102vCPUs 8GB Memory
11-1004vCPUs 16GB Memory
101-2508vCPUs 32GB Memory
251-50016vCPUs 64GB Memory
501-500032vCPUs 128GB Memory

部署tidb

  1. 添加tidb应用仓库

image.png

  1. 查看应用仓库提供的应用

image.png

  1. 在 Kubernetes 上快速上手 TiDB

部署前先在kubesphere中创建如下项目(对应k8s中命名空间)
image.png

# 部署crd
kubectl create -f https://raw.githubusercontent.com/pingcap/tidb-operator/v1.5.1/manifests/crd.yaml

# 部署tidb-operator,可在ks应用仓库部署
helm install --namespace tidb-admin tidb-operator pingcap/tidb-operator --version v1.5.1


# 查看部署情况
kubectl get pods --namespace tidb -l app.kubernetes.io/instance=tidb-operator

# 部署 TiDB 集群。可以在应用仓库部署,注意修改storageClassName
kubectl -n tidb apply -f https://raw.githubusercontent.com/pingcap/tidb-operator/v1.5.1/examples/basic-cn/tidb-cluster.yaml

# 部署独立的 TiDB Dashboard
kubectl -n tidb apply -f https://raw.githubusercontent.com/pingcap/tidb-operator/v1.5.1/examples/basic-cn/tidb-dashboard.yaml

# 部署 TiDB 集群监控
kubectl -n tidb apply -f https://raw.githubusercontent.com/pingcap/tidb-operator/v1.5.1/examples/basic-cn/tidb-monitor.yaml
  1. kubesphere中查看部署情况

image.png
image.png

  1. 暴露tidb相关服务

image.png
部署后会创建basic-tidb(svc),通nodeport暴露服务发现会重置导致不能访问,此处小编自己创建tidb-svc暴露服务进行测试如下:
image.png

  1. grafana监控面板集群监控,账号密码admin

image.png
image.png
image.png

  1. dashboard

image.png

TIDB工具

helm仓库 https://charts.pingcap.org/包括应用如下:

应用名称描述
tidb-operator用于在 Kubernetes 上部署和管理 TiDB 集群的操作符。它提供了自动化的部署、扩展和运维功能,简化了 TiDB 集群的管理流程。
tidb-cluster用于定义和配置 TiDB 集群的 Helm Chart。通过 tidb-cluster,您可以指定 TiDB、TiKV 和 PD 组件的数量、资源配置、存储设置等参数,以创建一个完整的 TiDB 集群。
tidb-backup提供了对 TiDB 集群进行备份和恢复的功能。tidb-backup 可以根据预定的计划自动备份 TiDB 集群,并支持从备份中恢复数据。
tidb-drainer用于从 MySQL 或者 TiDB 集群中抓取 Binlog,并将其转发到其他目标(如 Kafka 或者 TiDB 集群)。tidb-drainer 可以用于实时数据分析、数据同步等场景。
tidb-lightning提供了快速导入大量数据到 TiDB 集群的功能。tidb-lightning 可以将数据从各种数据源(如 MySQL、CSV 文件等)导入到 TiDB 集群中,以加快数据导入速度。
tikv-importer用于将数据从其他数据库引擎(如 RocksDB)迁移到 TiKV。tikv-importer 提供了高效的数据迁移工具,可以将数据转换为 TiKV 的格式并导入到 TiDB 集群中。
tikv-operator用于在 Kubernetes 上部署和管理 TiKV 集群的操作符。tikv-operator 可以自动创建和管理 TiKV 实例,提供了高可用性和可扩展性的分布式存储解决方案。
diag提供了 TiDB 集群的诊断和故障排查工具。diag 可以帮助您分析和解决 TiDB 集群中的性能问题、错误和故障。
br-federation用于在分布式 TiDB 集群中进行备份和恢复的工具。br-federation 可以协调多个 TiDB 集群之间的备份和恢复操作,提供了跨集群的数据保护和恢复能力。

helm常用命令

helm install安装一个 Helm 包helm install my-release stable/mysql
helm upgrade升级已安装的 Helm 包helm upgrade my-release stable/mysql
helm uninstall卸载一个已安装的 Helm 包helm uninstall my-release
helm list列出已安装的 Helm 包helm list
helm status显示已安装的 Helm 包的状态helm status my-release
helm rollback回滚到先前的 Helm 包版本helm rollback my-release 1
helm search搜索可用的 Helm 包helm search repo mysql
helm repo add添加一个 Helm 仓库helm repo add stable https://charts.helm.sh/stable
helm repo update更新已添加的 Helm 仓库helm repo update
helm repo list列出已添加的 Helm 仓库helm repo list
helm dependency update更新 Helm 依赖helm dependency update my-chart
helm lint检查 Helm Chart 的语法和最佳实践helm lint my-chart
helm template生成 Helm Chart 的模板文件helm template my-chart
helm history显示已安装 Helm 包的历史版本helm history my-release
helm plugin install安装 Helm 插件helm plugin install https://example.com/helm-plugin.tar.gz
helm plugin list列出已安装的 Helm 插件helm plugin list
helm plugin uninstall卸载已安装的 Helm 插件helm plugin uninstall my-plugin
helm env显示 Helm 的环境变量信息helm env

TIDB学习推荐资料

小编推荐学习最好还是阅读官网TiDB 产品文档,官网提供的PFD文档TiDB on Kubernetes 用户文档.pdf,tidb-github。除上述学习途径,小编推荐b站上的tidb教程,配套 资料已上传到gitee。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/322484.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

目标检测应用场景—数据集【NO.25】牛行为检测数据集

写在前面:数据集对应应用场景,不同的应用场景有不同的检测难点以及对应改进方法,本系列整理汇总领域内的数据集,方便大家下载数据集,若无法下载可关注后私信领取。关注免费领取整理好的数据集资料!今天分享…

云原生微服务之分布式锁框架 Redisson

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列专栏目录 [Java项目…

动物多指标生理监测:ZL-019A大小鼠饮食饮水监测系统

ZL-019A大小鼠饮食饮水监测系统是一款能够实时监测和分析动物的饮食、饮水、站立、活动量和活动轨迹等行为和代谢过程的智能系统。 本系统旨在定期测量实验动物的饮食饮水摄入行为,用户可根据需要自定义测量时间。通过定期测量,研究者无需再费心记录单个…

代码随想录 Leetcode454. 四数相加 II

题目&#xff1a; 代码 (首刷看解析 2024年1月15日&#xff09;&#xff1a; class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {int n nums1.size();u…

【干货】数字化工厂常见术语合集

本文将为大家介绍一些行业通俗名称&#xff0c;希望对于从事“数字工厂”行业的朋友以及正在求职的朋友们有所助益。 数字化工厂&#xff08;"Digital factory"&#xff0c;简写为"DF"&#xff09;&#xff1a;是指利用先进的信息技术和数字化解决方案&am…

关于如何禁用、暂停或退出OneDrive等操作,看这篇文件就够了

​想知道如何禁用OneDrive?你可以暂停OneDrive的文件同步,退出应用程序,阻止它在启动时打开,或者永远从你的机器上删除该应用程序。我们将向你展示如何在Windows计算机上完成所有这些操作。 如何在Windows上关闭OneDrive 有多种方法可以防止OneDrive在你的电脑上妨碍你。…

AI自动写文章的软件有哪些?分享五款实用的

据相关数据统计&#xff0c;AI自动写文章的软件逐渐成为了现实。这些写作软件利用强大的自然语言处理和机器学习算法&#xff0c;能够自动生成文章&#xff0c;为写作工作提供了极大的便利。在本文中&#xff0c;我将向大家介绍五款实用的AI自动写文章的软件&#xff0c;一起来…

打破效率瓶颈:运用Excel提升文秘与行政工作质量

文章目录 一、数据整理二、数据分析三、报表制作四、图表展示五、模板应用六、宏编程七、安全与隐私《Excel高效办公&#xff1a;文秘与行政办公&#xff08;AI版&#xff09;》编辑推荐内容简介作者简介目录获取方式 在现代企业中&#xff0c;文秘与行政办公人员的工作内容繁杂…

文件批量重命名:如何给文件自定义名称,大量文件重命名的方法

在日常生活和工作中&#xff0c;经常要处理大量的文件&#xff0c;例如把文件重命名。手动重命名每个文件不仅耗时&#xff0c;而且容易出错。现在一起来看云炫文件管理器如何按自定义名称批量给文件重命名的技巧。 文件名自定义名称前后缩略图对比。 用自定义名称批量重命名…

Unity 编辑器篇|(五)编辑器拓展GUILayout类 (全面总结 | 建议收藏)

目录 1. 前言2. 参数3. 功能3.1 按钮&#xff1a;Button、RepeatButton3.2 文本&#xff1a;Label、TextArea、TextField、PasswordField3.3 工具栏&#xff1a;Toolbar3.4 切换框&#xff1a;Toggle3.5 滚动条&#xff1a;HorizontalScroll 、VerticalScroll3.6 滑条&#xff…

优思学院|质量管理五大工具和七大手法要点总结|2024

在现代企业管理中&#xff0c;质量管理是核心竞争力的重要组成部分。它不仅关系到产品的品质&#xff0c;更直接影响到企业的市场信誉和经济效益。本文将深入探讨质量管理中的五大工具及七大手法&#xff0c;这些工具和手法都贯穿了六西格玛DMAIC五步的方法论之中&#xff0c;是…

MYSQL第三次作业--单表查询

第三次作业 一、创建worker表 mysql> create table worker(-> 部门号 int(11) not null,-> 职工号 int(11) not null,-> 工作时间 date not null,-> 工资 float(8,2) not null,-> 政治面貌 varchar(10) not null default群众,-> 姓名 varchar(20) not n…

arrow,一个神奇的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个神奇的 Python 库 - arrow。 Github地址&#xff1a;https://github.com/arrow-py/arrow 日期和时间处理是许多应用程序中的常见任务&#xff0c;但在 Python 中&#xf…

聚类算法之Kmeans聚类详解

聚类算法是无监督学习算法&#xff0c;它根据样本之间的相似性&#xff0c;将样本划分到不同的类别中&#xff1b;不同的相似度计算方法&#xff0c;会得到不同的聚类结果&#xff0c;常用的相似度计算方法有欧氏距离法。聚类算法的目的是在没有先验知识的情况下&#xff0c;自…

亚马逊卖家必备神器:鲲鹏系统助力产品排名飙升

亚马逊鲲鹏系统是一款功能强大的工具&#xff0c;为亚马逊卖家提供了多种实用功能&#xff0c;旨在提高产品排名、增加自然流量&#xff0c;并模拟真实的人类操作&#xff0c;以规避亚马逊的检测系统。 下面是亚马逊鲲鹏系统的主要功能和8大特点&#xff1a; 主要功能&#xf…

MATLAB对话框与菜单设计实验

本文MATLAB源码&#xff0c;下载后直接打开运行即可[点击跳转下载]-附实验报告https://download.csdn.net/download/Coin_Collecter/88740733 一、实验目的 1.掌握建立控件对象的方法。 2.掌握对话框设计方法。 3.掌握菜单设计方法。 二、实验内容 建立如下图所示的菜单。菜单…

(2023版)斯坦福CS231n学习笔记:DL与CV教程 (2) | 图像分类与损失函数

前言 &#x1f4da; 笔记专栏&#xff1a;斯坦福CS231N&#xff1a;面向视觉识别的卷积神经网络&#xff08;23&#xff09;&#x1f517; 课程链接&#xff1a;https://www.bilibili.com/video/BV1xV411R7i5&#x1f4bb; CS231n: 深度学习计算机视觉&#xff08;2017&#xf…

从第一性原理看大模型Agent技术

本文由下面的内部分享视频文字稿重新整理而成 从第一性原理看大模型Agent技术 引 一个乐观主义者的悲观估计 随着大规模模型技术的兴起&#xff0c;我们正处于一个崭新的智能时代的黎明。我们有一个大胆的预测&#xff0c;未来的5到10年将可能带来一场大变局&#xff1a;99%的…

Java异常:toString()和getMessage()区别

首先写了两个错误 Controller public class DemoController {RequestMapping("/show1")public String showInfo(){String str null;str.length();return "index";}RequestMapping("/show2")public String showInfo2(){int a 10/0;return &quo…

java多线程(并发)夯实之路-synchronized锁升级深入浅出

轻量级锁 使用场景&#xff1a;一个对象有多线程访问&#xff0c;但时间是错开的&#xff08;如果多线程同时访问&#xff0c;也就是有竞争的&#xff0c;会升级为重量级锁&#xff09; 轻量级锁对使用者是透明的&#xff0c;语法仍是synchronized 例&#xff1a; 以上的代码…