多媒体信息化建设,动态数据中心,深入理解分布式系统

在这里插入图片描述

目录

    • 一、前言
    • 二、双活数据中心
    • 三、数据备份方式
    • 四、设计双活数据中心需要考虑的问题
      • 1、延迟和稳定性
      • 2、Quorum/ Tie-Breaker
      • 3、工作负载
    • 五、动态数据中心
    • 六、深入理解分布式系统
      • 1、内容介绍
      • 2、作者简介

大家好,我是哪吒。

文末送5本《深入理解分布式系统》

一、前言

去年的这个时候,某电信大楼发生火灾,数十层楼体燃烧剧烈,消防赶到后将火势扑灭,撤离及时,无人员伤亡。经初步侦察,现场为大厦外立面起火。为防止发生危险,大楼部分设备断电,据中国电信官方及用户反映,部分用户手机语音和短信功能受到影响,截止当晚12时仍未恢复。

电信大楼于2000年建成,建筑地上42层地下2层。大楼内含荷花园电信机房,是湖南最大的主干线接入点之一,此前资料显示,机房具备25G光纤直CHINANET骨干网,总机架数量约1000个。

事发前招标信息显示,该大厦消防设备超期运行,火灾报警系统等存在较大安全隐患。

我们公司恰好有一个项目涉及其中,甲方要求连夜通宵解决此问题,保证数据的安全性和完整性。白天开会设计方案、晚上通宵实现方案、再开会汇报技术调研成果,循环往复,最终定下了同城双活数据中心这一技术方案。

二、双活数据中心

双活数据中心同时对外提供业务生产服务的双活模式,两个数据中心是对等的、不分主从、并可同时部署业务,可极大的提高资源的利用率和系统的工作效率、性能。

数据中心双活又分为:同城双活、异地双活。

区别在于由于网速的限制,每100km所产生的数据延迟约为1ms。

出于灾备目的,一般都会建设2个(或多个)数据中心,一个是主数据中心用于承担用户的业务,一个是备份数据中心用于备份主数据中心的数据、配置、业务等。

充分利用资源,避免备用服务器常年闲置造成的资源浪费,双活数据中心的服务能力是双倍的;如果一个数据中心断了,另一个还在运行,请求可以直接全部切换到正在运行的中心,用户无感知。

三、数据备份方式

主备数据中心之间一般有热备、冷备、双活三种备份方式。

  1. 热备:只有主数据中心承担用户的业务,备数据中心对主数据中心进行实时的备份,主数据中心挂掉以后,备数据中心可以自动接管主数据中心的业务,用户的业务不会中断,所以也感觉不到数据中心的切换。
  2. 冷备:只有主数据中心承担用户的业务,备数据中心不会对主数据中心进行实时的备份,而是周期性的备份。如果主数据中心挂掉了,用户的业务就会中断。
  3. 双活:主备两个数据中心都同时承担用户的业务,主备两个数据中心互为备份,并且进行实时备份。一般来说,主数据中心的负载可能会多一些,比如分担6070%的业务,备数据中心只分担40%30%的业务。

传统主备模式是一个业务只在一个数据中心运行,企业结合灾备等级需求和业务需求,在备份中心部署了大量的备份服务器,但备份中心仅为该业务提供灾备服务,只有当灾难发生、生产数据中心瘫痪时,灾备中心的业务系统才启动这些服务器,造成备份中心服务器资源浪费。

在设计双活数据中心的时候,数据同步是一个重点、难点。如果同步效率达不到,会造成数据丢失;由于数据同步不及时,网络故障问题,会造成双活中心被分裂成两个独立的数据中心,用户无法判断两个中心的数据哪个是最新的,这种现象被定义为脑裂问题。

四、设计双活数据中心需要考虑的问题

1、延迟和稳定性

由于网速的限制,每100km所产生的数据延迟约为1ms,会对实际应用性能构成影响,特别是双数据中心数据交互密切的业务。

2、Quorum/ Tie-Breaker

为了解决双数据中心的脑裂问题,需要提供有效的Quorum/ Tie-Breaker方式来保证数据完整性。

注:Quorum 机制,是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法。

3、工作负载

如果增删改的操作比例越高,就会有越多的数据需要跨数据中心传送,不利于双活中心设计,此时要考虑双活系统可以承载的工作量阈值。

随着数据的增多,数据安全和隐私保护成为数据中心面临的重要挑战。数据中心需要采取更严格的安全措施,防止数据泄露、黑客攻击等问题,同时还需要满足各种合规要求。

五、动态数据中心

双活数据中心是一种两个或多个数据中心同时在线提供服务的数据中心架构。在这种架构下,两个数据中心是对等的,不分主从,并可同时部署业务,可极大地提高资源的利用率和系统的工作效率、性能。当其中一个数据中心发生故障时,另一个数据中心能接管所有的应用请求,其核心的建设目标就是要确保“数据零丢失”。双活数据中心通常需要在基础设施、中间件、应用程序各个层次进行配置,以确保数据在两个数据中心之间实时同步。

应用、中间件、数据库,一切都是双套的,虽然双活中心可以同时可以对外提供服务,但终究还是有些冗余,因为原本一个数据中心就可以完成全省的业务支撑。

“2023减员增效”成为了热点名词,双活数据中心成本确实有点高了,怎么解决?

答案是:动态数据中心。

动态数据中心是一种可以根据业务需求动态分配资源的数据中心解决方案。它可以根据业务需求弹性扩展或缩减资源,实现IT资源的最大化利用。动态数据中心通常提供自服务功能、资源管理和服务生命周期管理等,使用户可以根据需要弹性分配适当的应用配置,并支持动态扩展。动态数据中心的目标是提高数据中心的灵活性、可扩展性和效率,以满足企业的快速变化和发展需求。

双活数据中心需要在基础设施、中间件、应用程序各个层次进行配置,以确保数据在两个数据中心之间实时同步。而动态数据中心主要关注IT资源的动态分配和管理,降低管理复杂度和运营成本。

动态数据中心有助于简化基础架构配置、合并管理工具,并促进自动化和一致性的实现。通过基于模板的配置、自动化配置以及基础架构生命周期管理等功能。动态数据中心能够帮助IT 快速响应业务需求、提升数据中心效率,并且提高IT 服务的交付质量。

动态数据中心可以简化基础架构配置过程中复杂而繁琐的任务。它能够帮助IT 组织快速引入新的基础架构或快速重新配置现有基础架构。这可以大大加快新工作负载投入生产的速度或者现有工作负载的资源扩展。

六、深入理解分布式系统

在这里插入图片描述

1、内容介绍

京东购买链接:深入理解分布式系统

《深入理解分布式系统》主要讲解分布式系统常用的基础知识、算法和案例,经笔者对文献海洋中晦涩艰深的原理和算法进行提炼,辅以图示和代码,并结合实际经验进行分析总结而成。通过阅读本书,读者可以快速、轻松地掌握分布式系统的基本原理,以及Paxos或Raft共识算法,并通过典型的案例学习如何设计大型分布式系统。

《深入理解分布式系统》首先介绍什么是分布式系统、分布式系统带来的挑战,以及如何对分布式系统进行建模,这部分内容偏向概念性介绍。接着介绍了分布式数据的基础知识,包括数据分区技术、数据复制技术、CAP定理、一致性模型和隔离级别,尝试厘清一些十分容易混淆的术语,比如一致性、线性一致性、最终一致性和一致性算法等。本书还介绍了分布式系统的核心算法——Paxos和Raft算法,不仅补充了大量图示进行讲解,还从零实现了一个Paxos算法。此外,本书分析了常见的分布式事务,并讨论了分布式系统中的时间问题,整理了一些实际发生的编程陷阱。最后结合一些对工业界产生重大影响的论文或开源系统,学习前人在设计大型分布式系统时的思路、取舍和创新。

2、作者简介

唐伟志,曾任网易游戏、腾讯基础架构工程师。毕业后一直从事分布式系统相关工作,在知乎和公众号“多颗糖”上分享对分布式系统论文的解读和算法的讲解。开源爱好者、TiDB Reviewer和Kubernetes Contributor。

🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建型模式 | 原型模式

一、原型模式 1、原理 原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。原型像是一个模板,可以基于它复制好多…

Seata1.4.2分布式事务搭建部署【Spring cloud Alibaba】

包下载 https://github.com/apache/incubator-seata/releases下载并上传到服务器 //解压 tar -zxvf seata-server-1.4.2.tar.gz创建Seata的数据库及表,地址:https://github.com/seata/seata/tree/develop/script/server 根据数据类型复制相应的sql&…

选择服装店收银系统源码需要注意的三个关键点

当选择服装店收银系统源码时,有几个关键点需要注意。首先,确保系统具备完备的功能,以满足日常运营的需求。其次,易用性和用户体验也是重要的考虑因素。最后,安全性和稳定性是不可忽视的要素。商人宝开源收银系统今天分…

CentOS:Docker 创建及镜像删除

1、安装docker 远程连接服务器,可以直接下载netsarang比较好用 家庭/学校免费 - NetSarang Website 如果有残留docker未删除干净,请使用 sudo yum -y remove docker docker-common docker-selinux docker-engine Step1:安装必要的一些…

PyCharm添加自动函数文档注释

目录 1、背景2、开启PyCharm自动函数文档注释 1、背景 规范的函数文档注释有助于他人理解代码,便于团队协作、提高效率。但如果我们自己手写函数文档注释将非常耗时耗力。PyCharm安装后默认没有开启自动化函数文档注释,需要我们开启 2、开启PyCharm自动…

HBase基础知识(一):HBase简介、HBase数据模型与基本架构

第1章HBase简介 1.1HBase定义 HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。 1.2HBase数据模型 逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V&a…

进阶之路:高级Spring整合技术解析

Spring整合 1.1 Spring整合Mybatis思路分析1.1.1 环境准备步骤1:准备数据库表步骤2:创建项目导入jar包步骤3:根据表创建模型类步骤4:创建Dao接口步骤5:创建Service接口和实现类步骤6:添加jdbc.properties文件步骤7:添加Mybatis核心配置文件步骤8:编写应用程序步骤9:运行程序 1.…

【源码解析】聊聊ReentrantReadWriteLock是如何实现的读写锁

为什么需要读写锁 在并发编程领域,有多线程进行提升整体性能,但是却引入了共享数据安全性问题。基本就是无锁编程下的单线程操作,有互斥同步锁操作,但是性能不高,并且同一时刻只有一个线程可以操作资源类。但是对于大…

《PySpark大数据分析实战》-16.云服务模式Databricks介绍运行案例

📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP…

操作系统系列:Unix进程系统调用fork,wait,exec

操作系统系列:Unix进程系统调用 fork系统调用fork()运用的小练习 wait系统调用Zombiesexec 系列系统调用 开发者可以查看创建新进程的系统调用,这个模块会讨论与进程相关的Unix系统调用,下一个模块会讨论Win32 APIs相关的进程。 fork系统调用…

【QT】C++/Qt使用Qt自带工具windeployqt打包

基本操作 运行项目debug或者release 将运行后的可执行文件单独放到一个文件夹中 根据项目使用的kits来选择Qt的打包工具 打开工具后移动到exe文件夹下执行windeployqt xxx.exe 预览图 问题 打包后再其他电脑上运行出现下图错误 将自己电脑的这个文件拷到可执行文件夹中既…

word增加引用-endnote使用

使用软件: web of science https://webofscience.clarivate.cn/wos/alldb/basic-search; Pub Med等数据库endnote20 链接: https://pan.baidu.com/s/1VQMEsgFY3kcpCNfIyqEjtQ?pwdy1mz 提取码: y1mz 复制这段内容后打开百度网盘手机App,操作更方便哦 --…

【计算机网络】TCP心跳机制、TCP粘包问题

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多计算机网络知识专栏&#xff1a;计算机网络&#x1f525; 给大家跳段…

MySQL的增删改查(进阶)--上

1. 数据库约束 1.1 约束类型 NOT NULL - 指示某列不能存储 NULL 值。 UNIQUE - 保证某列的每行必须有唯一的值。 DEFAULT - 规定没有给列赋值时的默认值。 PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列&#xff08;或两个列多个列的结合&#xff09;有唯一标识&#xf…

01AVue入门(持续学习中)

1.使用AVue开发简单的前端页面直接简单到起飞,他是Element PlusVueVite开发的,不需要向元素的前端代码一样一个组件要传很多参数,他可以使用Json文本来控制我们要传入的数据结构来决定显示什么 //我使用的比较新,我们也可以使用cdn直接使用script标签直接引入 2.开发中遇到的坑…

【C++】初识模板

本文目录 1. 泛型编程2. 函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 3. 类模板3.1 类模板的定义格式3.2 类模板的实例化 1. 泛型编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int& left, int&…

PYthon Pandas 时间序列数据重采样-resample()方法(第23讲)

PYthon Pandas 时间序列数据重采样-resample()方法(第23讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

windows远程桌面怎么开启?

文章目录 如下三种开启方式&#xff0c;任选一即可方式1.在系统属性中开启远程桌面方式2.通过系统设置开启远程桌面方式3.注册表编辑器开启远程桌面使用远程桌面 如下三种开启方式&#xff0c;任选一即可 配合 组网工具或者内网穿透 超级爽 局域网其他pc如何访问宿主机虚拟机IP…

智能优化算法应用:基于未来搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于未来搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于未来搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.未来搜索算法4.实验参数设定5.算法结果6.…

C#线程的定义和使用方法

引言 在C#编程语言中&#xff0c;线程是一种并发执行的机制&#xff0c;允许程序同时执行多个任务。线程的使用使得我们能够利用计算机的多核处理器&#xff0c;实现程序的并行执行&#xff0c;提高系统的性能和响应能力。本文将详细介绍C#中线程的定义和使用方法&#xff0c;涵…