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

news2024/12/23 12:07:06

在这里插入图片描述

目录

    • 一、前言
    • 二、双活数据中心
    • 三、数据备份方式
    • 四、设计双活数据中心需要考虑的问题
      • 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.coloradmin.cn/o/1326256.html

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

相关文章

Amazon Toolkit — CodeWhisperer 使用

tFragment--> 官网:https://aws.amazon.com/cn/codewhisperer/?trkcndc-detail 最近学习了亚马逊云科技的 代码工具,感慨颇多。下面是安装 和使用的分享。 CodeWhisperer,亚马逊推出的实时 AI 编程助手,是一项基于机器学习…

Linux服务器nginx部署Vue前端(详细版)

提示:适用于前后端项目的部署 文章目录 前言一、打包前端文件二、下载和部署Nginx三、配置conf文件启动nginx 前言 搜索到这篇文章想必你已经对Nginx比较了解,我也不对Nginx进行介绍赘述了,只需要明白Nginx本身也是一个静态资源的服务器&…

【MYSQL】MYSQL 的学习教程(三)之索引核心知识点

1. 什么是索引? 索引是一种能提高数据库查询效率的数据结构,一般存储在磁盘的文件中,它是占用物理空间的 适当的索引能提高查询效率,过多的索引会影响数据库表的插入和更新功能。 2. 索引的优劣势 优势: 提高数据…

GEM5 Garent CPU cache消息传递路径:1. NI部分

简介 我们仔细分析下图怎么连的,以及消息传递路径。 图来自https://www.gem5.org/documentation/general_docs/ruby/ 代码的连接 fs.py->ruby.py-> gem5/configs/ruby/MESI_Two_Level.py 中的 create_system( options, full_system, system, dma_ports, b…

STM32单片机项目实例:基于TouchGFX的智能手表设计(7)MVP架构下的交互逻辑设计

STM32单片机项目实例:基于TouchGFX的智能手表设计(7)MVP架构下的交互逻辑设计 目录 一、概述 二、MVP架构下的交互逻辑 一、概述 本文例程是基于 TouchGFX 的智能手表设计—Designer 软件 UI 设计的例程 0B-2_STM32U575_MVP_Interactive工…

【点选验证码识别】某招标网站反爬虫分析与验证码自动识别

文章目录 1. 写在前面2. 风控描述3. 验证码裁剪4. 验证码识别 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣…

Redis基础篇-002 初识Redis

1、认识NoSQL 1.1 概念 NoSQL是一个非关系型数据库。 常见的NoSQL有:Redis、MongoDB 1.2 NoSQL与SQL的区别 类别SQLNoSQL数据结构结构化非结构化数据关联关联非关联查询方式SQL非SQL事务特性ACIDBASE存储方式磁盘内存扩展性垂直水平使用场景1)数据结…

Uniapp + Vue3 封装请求工具挂载全局

新建request.js工具类 const http {// baseUrl 地址baseUrl: http://localhost:8080,// 请求方法request(config) {// config:请求配置对象,具体参照uniapp文档config beforeRequest(config)// 请求地址拼接config.url this.baseUrl config.url// 异…

WIN10安装gurobi给matlab使用(记录)

https://www.gurobi.com/downloads/gurobi-software/ 这是以前的matlab路径,需要修改成新的 使用校园网激活一下 运行gurobi_setup Google报错信息,发现mathwork官方的解释是:找不到相关的dll文件,所以mex无效。 解决方案&…

Unity | Shader基础知识(第八集:案例<漫反射材质球>)

目录 一、本节介绍 1 上集回顾 2 本节介绍 二、什么是漫反射材质球 三、 漫反射进化史 1 三种算法结果的区别 2 具体算法 2.1 兰伯特逐顶点算法 a.本小节使用的unity自带结构体。 b.兰伯特逐顶点算法公式 c.代码实现——兰伯特逐顶点算法 2.2 代码实现——兰伯特逐…

Windows下结束进程

可以用命令 netstat -ano | findstr :8088 直接找到端口号为8088的进程PID; 根据PID进程号结束进程 :taskkill /pid 14696 -t -f ;

研发提效必备技能:手把手教你基于Docker搭建Maven私服仓库

沉淀,成长,突破,帮助他人,成就自我。 大家好,我是冰河~~ 在研发的过程中,很多企业都会针对自身业务特点来定制研发一些工具类库,但是这些工具类库又不会对外公开,那如何在组织内部共…

如何使用支付宝的沙箱环境在本地配置模拟支付并发布至公网测试

文章目录 前言1. 下载当面付demo2. 修改配置文件3. 打包成web服务4. 局域网测试5. 内网穿透6. 测试公网访问7. 配置二级子域名8. 测试使用固定二级子域名访问 前言 在沙箱环境调试支付SDK的时候,往往沙箱环境部署在本地,局限性大,在沙箱环境…

oracle23安装并 配置内网代理(安装nginx oracle23)

安装nginx步奏如下 1.安装所需依赖 yum install -y gcc gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel automake autoconf libtool make2. 解压nginx压缩包,进入解压后的nginx目录 tar -xvf ./nginx-1.24.0.tar.gzcd ./nginx3. 以下编译命令中增…

深度学习或机器学习的模型部署相关的初步了解及分析

机器学习-深度学习 部署相关资料文档 这是上班之后的第一个文档,由于项目原因需要去了解一些和模型部署相关的知识,所以就简单了解了一下相应的部署引擎和框架,也是刚刚开始学习,如果有什么写的不对的欢迎大家交流,看…

2024年3月电子学会青少年编程等级考试时间安排

1考试方式 1. 在线居家考试(全国); 2. 对于符合线下考试要求的考试服务网点,经地方实地调研报学会总部批准后,可组织线下考试。 2报名时间 报名时间:2023年12月21日-2024年3月12日16:00; 考…

Web API ------- requestAnimationFrame

官方文档 requestAnimationFrame 是什么 window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行 …

HTML输出特殊字符详细方法

以下是部分特殊字符代码表,它们的完整应用代码格式为:&#;用下面的四位数字替换,将得到对应的符号。(注意:应用这些代码,编辑器应该切换到HTML模式) ☏260f ☎260e ☺263a ☻263b ☼263c ☽…

【UML】第6篇 用例图(1/3)

目录 一、什么是用例图 二、参与者 2.1 什么是参与者 2.2 如何识别参与者 2.3 参与者之间的关系 从今天开始,就到了最干的各种的图的梳理和学习了,未来AI就能编码了,把业务建模和设计的基本功打好,也许能和AI和平相处呢。 一…

第三节TypeScript 基础类型

1、typescript的基础类型 如下表: 数据类型 关键字 描述 任意类型 any 生命any的变量可以赋值任意类型的值 数字类型 number 整数或分数 字符串类型 string 使用单引号(‘’)或者双引号(“”)来表示字符串…