双副本与双活:TDengine 为企业打造的高效数据管理利器

news2024/12/23 15:17:43

在现代数据管理中,企业对于可靠性、可用性和成本的平衡有着多样化的需求。为此,TDengine 在 3.3.0.0 版本中推出了两种不同的企业级解决方案:双活方案和基于仲裁者的双副本方案,以满足不同应用场景下的特殊需求。本文将详细探讨这两种方案的适用场景、技术特点及其最佳实践,让大家深入了解这两大方案如何帮助企业在高效可靠的数据存储和管理中取得成功。

TDengine 双副本(+仲裁者)

为了满足部分客户在保证可靠性和可用性条件下尽可能压缩部署成本的需求,TDengine 提出了基于仲裁者的双副本方案。该方案通过提供“只有单个服务故障且不出现连续故障”的容错能力,成为客户降低成本和提高效率的有效选择。

相较于传统的三副本数据库,双副本数据库具有显著的优势。它在减少硬件成本的同时,依然能够保证一定的高可用性。具体来说,双副本数据库中每个 Vgroup 仅有两个 Vnode。当其中一个 Vnode 发生故障时,Mnode 可根据数据同步状态,裁定另一 Vnode 是否可以独自对外提供服务。这种机制确保了在某个副本节点故障时,数据不会丢失,并且系统能够持续进行写入和查询操作。

这一方案的适用场景广泛,面向有降低存储成本需求的、希望减少物理节点需求的客户,以及对高可用性要求稍低的客户。

从技术角度看,双副本方案具有以下几个显著特点:

  • 副本数目:时序数据的副本数目为 2,但集群内节点数目必须大于等于 3。

  • 自动切主:当时序数据的某个副本所在的物理节点宕机时,可以自动切换主节点,确保数据不丢失,并且能够持续写入和查询。

  • 选主机制:双副本选主由高可用的 Mnode 提供仲裁服务,而不是由 Raft 组内决定。

仲裁者 (Arbitrator) 在双副本方案中发挥关键作用。它提供仲裁服务但不存储数据。当 Vgroup 因某一 Vnode 故障而无法提供服务时,Arbitrator 可以根据同步情况指定同组另一 Vnode 成为 Assigned Leader,无论其他副本 Vnode 是否存活,均可一直响应用户请求。这一机制确保了即使在某个副本节点故障的情况下,Assigned Leader 仍然能够一直响应用户请求,从而提高系统的可靠性和可用性。

TDengine 双活

部分用户由于部署环境的特殊性,只能部署两台服务器,同时希望实现一定的服务高可用和数据高可靠。针对这些需求,TDengine 提出了双活方案。双活方案不仅适用于一些资源受限的环境,也能在两套 TDengine 集群之间的灾备场景中发挥重要作用。

在业务系统中,双活架构通常包括两台服务器,各自部署一套服务。在业务层看来,这两台机器和两套服务组成了一个完整的系统。双活中的两个节点通常被称为 Master-Slave,即“主从”或“主备”。

双活方案在多个场景中都有广泛应用。首先,对于因部署环境特殊性只能部署两台服务器的客户,双活方案是理想选择。这些客户希望在有限的硬件资源下,仍然能够实现服务高可用和数据高可靠。其次,双活方案在工业控制领域中尤为适用。由于这些领域对系统可靠性和数据准确性有着极高的要求,双活架构能够很好地满足这些需求。此外,双活方案还适用于灾备场景,无论是资源受限的环境还是不限节点数目的两套 TDengine 集群之间的灾备场景,都能提供有效的解决方案。

双活方案通过一系列技术机制实现高可用性和数据可靠性:

  • 首先,系统通过 Client Driver 实现双系统的 Failover,即在主节点发生故障时,能够自动切换到从节点,确保服务不中断。

  • 其次,taosX 实现了主节点到从节点的数据复制,通过数据订阅的写接口在写入复制过来的数据时,在 WAL 中加入特殊标记。

  • 第三,数据订阅的读接口在读取数据时,会自动过滤掉带有特殊标记的数据,从而避免数据重复复制和无限循环。

当前,双活方案仅支持 JDBC 连接器和 WebSocket 连接方式,不支持 Native 连接。双活两端集群必须同构,即数据库的命名和所有配置参数必须完全相同,以确保系统的正确运行。

双副本 VS 双活,区别与实践

在 TDengine 的双副本和双活方案中,虽然它们都旨在提升数据可靠性和服务可用性,但两者在架构设计和实际应用中有着显著的区别。了解这些差异,对于选择合适的方案并实现最佳实践至关重要。

双活方案和双副本方案在集群架构上有明显的差异。双活方案需要部署两个独立的集群,每个集群内部的节点数可以任意多,而双副本方案只需部署一个集群,但集群内的节点数目必须大于等于三。这样一来,双活方案在集群内部节点数目上的灵活性更大,但同时也增加了部署和管理的复杂性。双活系统内的最小节点数为两个,也就是说每个集群至少有一个节点;相比之下,双副本系统的最小节点数为三个,以确保数据的可靠性和高可用性。

在同步原理上,双活方案通过 taosX 实现数据同步,依赖于 taosX 的同步速度,通常在秒级别。双副本方案则通过 Arbitrator 仲裁选主,由 Raft 协议保证数据的一致性,因此在同步延迟上表现更好,没有延迟。数据安全性方面,双活方案依赖于 WAL 的保存时长,而双副本方案则能确保无数据丢失。高可用性上,双活方案只要有一个节点存活即可提供服务,而双副本方案在连续宕机后,只有一个节点存活时,可能无法提供服务。

双副本最佳实践

1.全新部署

双副本的主要价值在于节省存储成本的同时能够有一定的高可用和高可靠能力。在实践中,推荐配置为:

  • N 节点集群 (其中 N>=3)

  • 其中 N-1 个 dnode 负责存储时序数据

  • 第 N 个 dnode 不参与时序数据的存储和读取,即其上不保存副本;可以通过 supportVnodes 这个参数为 0 来实现这个目标

  • 不存储数据副本的 dnode 对 CPU/Memory 资源的占用也较低,可以使用较低配置服务器

2.从单副本升级

假定已经有一个单副本集群,其节点数为 N (N>=1)。将集群的节点数目扩展至 3 个以上,修改 Mnode 的副本数目为 3,在使用 alter database replica 2 的命令修改某个特定数据库的副本数。

双活最佳实践

双活系统通过数据复制实现双系统之间的数据同步,但这种同步只能保证最终一致性,无法确保实时一致性。主节点可能在任意时刻宕机,宕机时可能会有数据差集,尤其是元数据差集。在完成主备切换后,业务层可能会发起重复的建表请求,但 schema 可能不相同,导致元数据不一致。因此,建议在系统启动后集中完成所有建库建表操作,后续只写入时序数据,尽量避免再进行元数据操作。

结语

无论是双副本还是双活方案,TDengine 都为用户提供了强大的数据存储和管理解决方案。双副本方案在节省存储成本的同时,保证了一定的高可用性和数据可靠性,非常适合资源有限且需要高效数据管理的企业。双活方案则通过其灵活的架构和强大的灾备能力,为特殊部署环境和高可靠性需求的应用场景提供了理想的解决途径。通过理解这两种方案的区别和最佳实践,用户可以根据自身需求选择最适合的方案,充分利用 TDengine 的技术优势,打造稳定、高效的数据库系统。这不仅提升了业务连续性和数据安全性,更为企业的数字化转型提供了坚实的基础。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

看看智慧门诊银医通自助服务方案,如何化解医院患者跑难题

“看病三分钟,排队三小时”,这是许多患者在就医过程中的无奈吐槽。挂号队伍长如龙,看病流程繁琐复杂,缴费窗口人满为患,检查报告等待时间漫长…… 这些就医痛点,不仅让患者身心疲惫,也给医院的管…

Python编码系列—Python抽象工厂模式:构建复杂对象家族的蓝图

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

wifi MSDU MPDU BA

MSDU (Mac service data unit) mac 服务层 数据单元, 也就是包含了 mac 层头和 FCS 的 802.11 包。 MPDU(Mac protocol data unit)mac 协议层数据单元, 这个包只是原始的802.11 数据包 在新的wifi 协议中有两种聚合方式 A-MSDU…

数仓建设:为什么我们的数据容易被业务方质疑?

目录 0 问题背景 1 问题产生的原因 2 问题解决方案 3 小结 数字化建设通关指南专栏原价99,现在活动价39.9,按照阶梯式增长,直到恢复原价 0 问题背景 “ 在数字化建设进程中,无论是处于数据产品的你,或是数据开发的…

ModbusTCP/RTU转Ethernet/IP(CIP)-Modbus设备与罗克韦尔AB的PLC之间通讯

IGT-DSER智能网关模块支持西门子、三菱、欧姆龙、罗克韦尔AB等各种品牌的PLC之间通讯,同时也支持PLC与Modbus协议的工业机器人、智能仪表、变频器等设备通讯。网关有多个网口、串口,也可选择WIFI无线通讯。无需PLC内编程开发,只要在IGT-DSER智…

Python 数学建模——Vikor 多标准决策方法

文章目录 前言原理步骤代码实例 前言 Vikor 归根到底其实属于一种综合评价方法。说到综合评价方法,TOPSIS(结合熵权法使用)、灰色关联度分析、秩和比法等方法你应该耳熟能详。Vikor 未必比这些方法更出色,但是可以拓展我们的视野。…

从GreaterWMS学习仓库管理系统

前言 客户并不知道(确切地)他们需要什么? 需要通过需求分析工具和技术,利用宽进严出的需求池,需求验证使用原型测试,场景分析,专家评审,交叉检查等手段,经过充分验证的需…

牛耕分解+形态学分割 全覆盖路径规划(二)Part1. 分割

书接上文:牛耕分解形态学分割 全覆盖路径规划(一) 前置文章1:房屋区域分割算法 Morphological Segmentation 前置文章2:牛耕覆盖算法 Boustrophedon Coverage Path Planning 项目地址:ipa320 / ipa_cove…

基于Kubernetes部署Spark:spark on kubernetes

什么是spark? spark是一种基于内存的快速、通用、可扩展的的数据分析计算引擎。 Hadoop、Hive、Spark是什么关系? 大数据技术生态中,Hadoop、Hive、Spark是什么关系?| 通俗易懂科普向_哔哩哔哩_bilibili Hadoop 与 HDFS (Hado…

【腾讯云】AI驱动TDSQL-C Serveress 数据库技术实战营-如何是从0到1体验电商可视化分析小助手得统计功能,一句话就能输出目标统计图

欢迎来到《小5讲堂》 这是《腾讯云》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 背景效果图流程图创建数据库基本信息数据库配置设置密码控制台开启…

腾讯联合多所高校出品!AI游戏生成模型 GameGen-O 轻松生成高质量游戏元素

最近,香港和中国的几所大学与腾讯联合研发了一个名为 GameGen-O 的 AI 模型,专门用于创建开放世界视频游戏的模拟。 GameGen-O 的功能不仅仅限于生成高质量的游戏内容,它还模拟了多种游戏引擎的特性,能够创造出丰富多样的游戏元素…

字符分类函数和字符串函数

Hello~,欢迎大家来到我的博客进行学习! 目录 1.字符分类函数😘1.1解释以及使用🤯1.2将字符分类函数组合使用👻2 .字符转换函数🧐 1.字符分类函数😘 1.1解释以及使用🤯 在键盘上敲的字符有许多…

揭秘高效日志管理:解锁数据宝藏,驱动业务精准决策

作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团儿.-CSDN博客 目录 前言&#…

duckdb 连接postgres 和 jdbc 的使用

why? 主要是特别快 嵌入式,不需要服务器,使用超级方便 扩展机制灵活,可以直接读取CSV、JSON、Parquet等文件 Parquet文件格式详解(含行、列式存储区别)_parquet格式-CSDN博客 采用列式存储(用…

边缘计算网关:连接中心计算与边缘设备的重要桥梁-天拓四方

一、边缘计算网关:重新定义信息高速公路的“路标” 边缘计算网关,作为边缘计算生态系统中的核心组件,不仅承载着数据传输的功能,更是智能信息处理的关键节点。它通过分布式计算架构,将数据处理任务前置到网络边缘&…

JDK 收费了,怎么应对?难道 JDK 8 一直用下去吗?

最近遇到一个问题:Oracle JDK 8 在 ARM 机器上性能特别差! 我的第一直觉就是是不是 JDK 8 在 ARM 不兼容? 为了研究这个问题,我探究了一圈,主要是找找有没有同行遇到这个问题,在找的过程中呢,发…

基于vue框架的宠物领养系统l3a76(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,宠物信息,宠物领养,宠物品种,团队信息,入团申请,团队活动 开题报告内容 基于Vue框架的宠物领养系统开题报告 一、引言 随着宠物文化的普及和人们对宠物情感的日益加深,宠物领养已成为社会关注的热点之一。然而&#…

# 大模型的第一个杀手级应用场景出来了

大家终于都意识到大模型首先改变的是软件行业自己,而软件的根基是代码生成。代码生成第一波就是AI辅助开发,这个会是大模型第一个杀手级应用。大家苦苦逼问自己的大模型杀手级应用,为什么会是辅助编程,这里说下什么: 必…

利用shuji还原webpack打包源码

0 前言 前段时间做一个银行的项目,是在别人已经打过好多次的基础上继续打,而且时间很短,也是没办法要有产出,这个银行很多站点都是webpack打包,就新学了一个点:利用shuji获取webpack打包站源码&#xff08…

2025届京东校招薪酬全面上调,加薪20%!

就在近日京东官方发布声明,今年 2025 届校招岗位的薪资将全面上调,再次加薪!其中,采销、技术、产品等核心岗位薪酬上调不低于20%,产研类岗位更狠,算法岗平均起薪涨幅超75%,硬件和设计等岗位起薪…