大数据最全TDengine高可用分布式集群详解_tdengine 集群(3),大数据开发高级进阶学习资料

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

+ [2、主从机制](#2_48)
+ [3、集群](#3_57)
+ - [1)集群概念](#1_58)
	- [2)节点的概念](#2_64)
+ [4、负载均衡](#4_69)
+ [5、分布式系统](#5_73)
+ - [1)高可用](#1_81)
	- [2)高可靠](#2_107)
	- [3)高性能](#3_112)
	- [4)高并发](#4_115)

一、前言

本文将介绍 TDengine 的高可用集群架构,全文通俗易懂,会从最简单的分布式概念开始讲起,想要入坑服务器同学抓紧准备好你的被子,卷起来吧!
  在讲 TDEngine 的架构之前,我们先来复习和巩固一下分布式和集群中的一些常用概念以方便后续文章内容的理解。由于一些概念过于枯燥,所以我打算先举个栗子。
在这里插入图片描述

二、举个栗子

1、努力工作的小T

小 T 作为一个程序员,同样也是一家之主,要担起养家糊口的重任,每天上班努力工作赚钱。

努(整)力(天)赚(摸)钱(鱼)的小T

2、可怜的小T

突然,有一天,小T不堪重负,工作压力过大,导致便秘、大肠感染、肝脂肪浸润、高血压、高血糖、高血脂、神经性耳鸣、红斑、支气管炎、咳嗽、呕吐、头晕、手脚麻木、两眼无神、记忆衰退,最终进入了医院。于是暂时没法再赚钱养家了。

操劳过度的小T

3、小T的老婆小D登场

经过几个月的修养,小T终于出院了,但是他觉得,得有一个人,在他生病的时候能够出去赚钱,于是他开始教老婆写代码,小T的老婆叫小D,确实也很聪明。很快就学会了。接下来,小T继续出去赚钱,每天回来把学到的知识教给小D,等哪一天小T病了,小D就去公司帮忙解决问题。久而久之,这个模式下来,也没有出过什么问题。

小T教小D写代码

4、小T创业了

就这么持续干了十年,小T也有了点积蓄,于是他带着自己的技术,从公司跑路了。自己创办了一个公司,并且请了四五个小兵,一起来写代码。他自己和老婆偶尔也参与一下。

一起来写代码哟

5、平衡分配任务

成为资本家的小T开始压榨员工,导致员工不堪重负,大家纷纷进了医院。于是他决定,根据情况酌情分配任务,这样,员工们就能轮流去医院,不会一起病倒,这样起码公司就能运作下去。

不要一起倒下哟

6、公司越做越大

再接下来,公司逐渐步入正轨,于是还是招聘各种岗位,HR、法务、运维、运营,逐渐把公司发展成了上市公司。小T和小D也实现了财务自由。过上了幸福生活。这时候,就算小T和小D不工作,公司也能正常运作一段时间了。他们的公司以夫妻名字命名,叫 TD Company

  • 好了,故事讲完了。那么,接下来,我们来看下,我刚才都讲了些什么!! ?

三、分布式和集群概览

1、单点

1)单点概念
  • 单点是分布式设计中的一大忌讳,这里的 “点” 指的是网络中的某个节点:一般指代的是某个进程 (Process) 或者 某台服务器物理机 (Server)。
  • 一个进程会提供一个或多个服务,即 Service。
  • 如果对于某个服务,我们只部署在一个进程上,这就是单点问题。

  • 如上图所示,闪烁的球代表网络通讯,如果单点服务不出问题,那么这个系统就能正常运行,用户能够正常的获取信息,比如屏幕前的你能够正常的查阅这篇文章,就是因为 CSDN 的网站没有挂(当然,它肯定不是单点服务 ~)。

刚才故事里面的小 T,就好比这个单点服务。

2)单点故障
  • 当这个单个进程挂了,或者唯一的物理机挂了,服务无法正常提供给用户,这就叫单点故障。

  • 如上图所示,唯一的单点服务器故障以后,用户无法正常和服务器通讯,敲她急得都跺脚了~

就像刚才故事里小T住进了医院,这样就会导致他无法再赚钱养家了。

2、主从机制

  • 主从机制,又叫主备机制,即 Master / Slave ,一共有两个进程:主进程 和 备用进程。主进程提供服务,而备进程就是备用着,默默的付出,在背后不断接收主进程的数据,等待主机挂了之后取而代之(啊这…… 司马昭之心,路人皆知啊)。
  • 因此在主机还存活的情况下,备用机的唯一使命就是同步主机的数据,不对外会提供服务。

  • 如上图所示,用户不断和主进行通讯,从不断从主那里同步数据。一旦主宕机了,则迅速切换从为主,然后在最短时间内把主启动起来。

就好比刚才故事里小T是主,他的老婆小D是从,平时每天等老公下班回家给他分享知识。等老公倒下了,她就代替老公去上班,继续养家糊口,直到老公出院。夫妻间组成了 Master / Slave 模式。

  • 常见的数据库 MYSQL 和 缓存 Redis 都有 主从模式。

3、集群

1)集群概念
  • 集群,即多个进程通过网络联系在一起,它们提供相同的服务,任何一个进程都可以向客户端提供服务,某个进程挂了,可以通过数据迁移将用户数据迁移到另一个进程,只要这些进程没有全部挂掉,那么这个集群就是能正常工作的。

  • 例如上图中,集群中总共五个进程,只有当五个进程都挂了,整个系统才会完全瘫痪。

就好比小T招募了一批程序员来帮他干活,这样他就不用干活了。这些程序员组成了一个集群。

2)节点的概念
  • 节点,node,一般理解为一个进程,或者一台物理机,下文也会返回提到节点的概念。节点之间通过网络联系起来,组成了集群。

每个程序员都是集群中的一个节点。

4、负载均衡

  • 用户连接网络集群中的进程,如果没有做策略,可能会出现一种情况就是:有些进程连接用户巨多,而有些进程很少有用户连接,这样就造成某些进程的负载过大,而影响正常服务器的运行。
  • 基于这样的考虑,我们需要设计一些均衡策略,让用户能够均匀的分布到不同的进程上,这就叫负载均衡。

就好比,刚才每个程序员轮流加班,三班倒,这样整个系统还是能运作下去。

5、分布式系统

  • 多个提供不同服务的集群组成一个完整的高可用架构,就是基础的分布式系统。

  • 如上图所示,拥有不同功能的服务集群组成的一个大的系统就是分布式系统。
  • 分布式系统需要满足 高可用、高可靠、高性能、高并发。

而刚才小T成立的公司,就好比一个分布式系统。

  • 接下来,我们对 高可用、高性能、高并发、高可靠进行一些简单的解释。
1)高可用
  • 如果一个服务能够正常使用,那么我们称之为 “可用”,比如你现在能看到这篇文章,说明网站处于 “可用” 状态。
  • 可用性定义为在足够长的时间里,一个服务可用的时间,服务可用时间越长越好。
  • 一般用可服务时间除于总时间算出一个百分比,用百分比作为度量。比如一个服务如果有 5 个 9 的可用性,指的就是一年里 99.999% 时间里服务都是可用的。
  • 按照年度可用性,来看一个表格:
可用时间百分比可用时间(天)全年故障(天)全年故障(可视单位)
90%365天 x 90% = 328.5天36.5天> 1个月
99%365天 x 99% = 361.35天3.65天3.65 天
99.9%365天 x 99.9% = 364.635天0.365天8.76 小时
99.99%365天 x 99.99% = 364.9635天0.0365天52.56 分钟
99.999%365天 x 99.999% = 364.99635天0.000365天5.26 分钟
  • 这个表格什么意思呢?
  • 从上至下, 9 的个数越多,则代表系统的可用性越高。
  • 同样,按照月度可用性,我们同样可以得到一个表格如下:
可用时间百分比故障时间
90%3天
99%7.2小时
99.9%43.2分钟
99.99%4.32分钟
99.999%25.92秒
2)高可靠
  • 可靠性定义为一个服务连续无故障运行的时间,无故障运行的时间越长,可靠性就越高。
  • 那么可靠性和可用性的区别在哪里呢?
  • 想象有一个服务,可靠性很高,平均来说可以稳定运行一百年,但是一旦服务中断,要用十年的时间来恢复,那么它的可用性只有 90%;而另一个服务,可靠性很差,运行 10秒 就会宕机,但是恢复服务只需要1ms, 那么它的可用性是 99.99%。
3)高性能
  • 性能对于开发来说是一个老生常谈的问题了,可以简单理解成一个系统某项功能的执行速度。
  • 我们平时也无数次的尝试进行性能优化。小到一个 ++ii++,都有性能区别。
4)高并发
  • 高并发是指通过设计保证系统能够同时并行处理很多请求。
  • 高并发相关常用的一些指标有:响应时间、吞吐量、QPS、并发用户数。

1. 响应时间

  • 系统对请求做出响应的时间。

2. 吞吐量

  • 单位时间内处理的请求数量。

3. QPS

  • Query Per Second,每秒响应请求数。

4. 并发用户数

  • 同时承载正常使用系统功能的用户数量。

四、TDEngine的分布式架构

1、TDEngine 概述

  • TDengine 的设计是基于分布式的几个特性而设计的。
  • TDengine 采用分布式高可用架构设计,支持水平扩容,这样任何单台或多台服务器发生硬件故障或软件错误都不影响系统的可用性和可靠性。
  • 同时,通过节点虚拟化、负载均衡,它能最高效率地利用异构集群中的计算和存储降低硬件资源的投入。

2、分布式架构

  • 一个完整的 TDengine 系统是运行在一到多个物理节点上的,逻辑上,它包含数据节点、TDengine客户端以及应用。
--
数据节点dnode
TDEngine 客户端TAOSC
应用APP
  • 系统中存在一到多个数据节点,这些数据节点组成一个集群。应用通过 taosc 的应用程序接口与 TDengine 集群进行互动。
  • 如图所示:
  • 整个集群由以下几种节点组成:物理节点、数据节点、虚拟节点、管理节点、虚拟节点组、TAOSC,接下来我们一一来介绍这几个节点的用途。

五、TDEngine的进程节点

1、物理节点

物理节点、processnode、pnode

  • 物理节点,是一独立运行的、拥有自己的计算、存储和网络能力的计算机,当然,它可以是:
  • 1)安装有操作系统的物理机器设备;
  • 2)虚拟机,云,例如阿里云、腾讯云等等;
  • 3)也可以是容器,例如 Docker;Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 能够将 应用程序 与 基础架构 分开,从而快速交付软件。

2、数据节点

数据节点、datanode、dnode

  • 数据节点,是 TDengine 服务端执行代码 TAOSD 在物理节点上的一个运行实例(也可以认为是一个进程),一个完整的系统中至少需要一个数据节点。如下图红框所示:

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

数据节点、datanode、dnode

  • 数据节点,是 TDengine 服务端执行代码 TAOSD 在物理节点上的一个运行实例(也可以认为是一个进程),一个完整的系统中至少需要一个数据节点。如下图红框所示:

[外链图片转存中…(img-I8lg5Mwd-1715037117101)]
[外链图片转存中…(img-6ZN1v2YJ-1715037117101)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个用于处理大规模数据的开源框架,它不仅是大数据技术的核心重点,也是面试中经常会问到的问题之一。Hadoop包含了Hadoop框架本身以及Hadoop生态系统中的其他辅助框架,如zookeeper、Flume、Hbase、Hive、Sqoop等。在一个正常工作的Hadoop集群中,需要启动多个程来完成不同的任务。这些程包括: 1. NameNode:负责管理HDFS(Hadoop分布式文件系统)的元数据,如文件的目录结构和文件块的位置信息。 2. DataNode:负责存储实际的数据块,并向NameNode报告块的状态。 3. ResourceManager:负责管理集群上的资源分配和任务调度,协调不同应用程序之间的资源竞争。 4. NodeManager:负责管理每个节点上的资源,接收来自ResourceManager的指令,启动和监控容器,执行具体的任务。 5. SecondaryNameNode:定期从NameNode中复制元数据,用于恢复NameNode的故障。 6. JobTracker:负责任务调度和资源管理,监控任务的执行并重新调度失败的任务。 7. TaskTracker:在每个节点上运行,负责执行特定的任务,如Map任务或Reduce任务。 这些程协同工作,以实现Hadoop集群的分布式计算和数据存储。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [大数据开发面试题详解:Hadoop的运行原理](https://blog.csdn.net/xx666zz/article/details/85708344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [2021最大数据面试题汇总---hadoop篇,附答案!](https://blog.csdn.net/weixin_45574790/article/details/119241157)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值