云安全—分布式基础

0x00 前言

云必然是依赖于分布式技术来进行实现的,所以有必要学习和来了解分布式相关的内容

0x01 分布式计算

1.基本概述

分布式计算的定义:通过网络互联的计算机都具有一定的计算能力,他们之间互相传递数据,实现信息共享,协作共同完成一个处理任务

分布式计算的特点:

  • 共享稀缺资源
  • 负载均衡

分布式的主要特性就是节点分布,将计算量分配到网络中的不同计算节点上去,从而提高计算能力和加快效率。

2.分布式计算原理

分布式计算的关键步骤

2.1 设计分布式计算模型

首先需要规定分布式系统的计算模型,计算模型决定了系统中各个组件应该如何运行,组件之间如何进行消息通信,组件和节点应该如果管理。

常见的计算模型:

  • MapReduce
  • 数据流
  • P2P
  • RPC
  • Agent

计算模型的内容展开又是一大堆需要学习的内容,在这里不进行展开,有兴趣可以自行研究,或者可以期待后续如果有深入学习需求也会同步更新。

2.2 分布式任务分配

分布式计算任务是需要进行分配分摊到各个节点上的,所以算法主要解决的事如何分配,怎么分配的问题。其实这里就是需要一个任务调度器,以及任务调度准备,类似于如何得到权重。

2.3 编写并执行分布式程序

使用特定的分布式计算框架与计算模型,将分布式算法转化为实现,并且保证高效,主要考虑的问题就是计算调度,多节点通信,所以可以说,算法是整个分布式系统的主要核心内容。

0x02 分布式计算的理论基础

1.ACID原则

ACID是数据库的四个原则:

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 独立性(lsolation)
  • 持久性(DuraBility)

1.1 原子性

原子性简单的理解就是,所有的内容,要嘛都成功,要嘛就都不成功。不存在某些成功,或者某些失败的结果,有一个失败就是都失败。

1.2 一致性

由一组值定义,数据库系统中的所有数据点都必须与这些值保持一致,才能正确读取和接受数据。

比如A+B=10,如果A变了的话,B也要跟随改变才可以

1.3 独立性

事务之间相互之间不会互相影响

1.4 持久性

一旦事物提交,并且处理了之后,数据就会永久保存。

1.5 特点

ACID的优势在于稳定,并且容易实现,但是只适合在单台服务器上进行操作,如果任务量以及节点量大起来的话就没有办法满足所有的特性,从而效率变得非常差。

2.CAP

2000年7月 加州大学伯克利分校的埃里克·布鲁尔(Eric Brewer)教授在ACM PODC会议上提出CAP猜想。

一个分布式系统只能同时满足一致性,可用性和分区容错性的其中两项

在这里插入图片描述

2.1 一致性

在更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。

关系型数据库要求更新过的数据,后续的访问都能看到,强一致性

容忍后续部分访问不到,就是弱一致性。

经过一段时间能够访问到更新后的数据,实际上就是做了数据同步,那么这种就是最终一致性

2.2 可用性

这个和CIA类似,就是在正常的响应时间内,对于一个可用性的分布式系统,非故障节点需要对请求做出响应。

2.3 分区容错性

分布式系统再遇到某节点或者网络故障的时候,依然可以满足一致性和可用性的服务。

2.4 权衡

想要数据一致性,则就会舍弃可用性
想要强数据可用性,则就会舍弃数据一致性
分区容错则在使用者想要保障那个方面而住处努力

3.BASE

BASE是对CAP理论的延伸,核心思想是即使无法做到强一致性,但应用可以采用适合的方式达到一致性。

DBASE指代 可用性,软件状态(Soft State),最终一致性(Eventual Consistency)

3.1 基本可用性

出现故障的时候,允许损失部分可用性,保证核心可用。

3.2 软件状态

如那件状态指允许系统存在中间的状态,并且不会影响系统整体可用行。

3.3 最终一致性

在经过一段时间后,最终能够达到一致的状态,最终一致性可以理解为可能等待,但是最终的结果是一致性。

3.4 一致性散列

为了解决寻址问题,通过一致性散列将对象均匀的分布到节点上,在增加或者删除是,可以减少需要移动的数据量。

0x03 分布式系统概述

1.分布式系统的基础知识

具有分布式能力的系统

2.分布式系统的特性

  • 容错性,节点可以出错,但是运行不会影响
  • 高可扩展性,在运行过程中可以对内部节点进行功能扩展
  • 开放性,具备自我扩展和集成
  • 并发处理能力
  • 透明性

3.Apache Hadoop

Apache Hadoop 是一个典型的分布式软件框架。

主要涉及:

  • 存储
  • 计算
  • 资源调度

0x04 分布式系统的进阶

现代的分布式系统:

  • 分布式存储系统
  • 分布式计算系统
  • 分布式资源系统

1.分布式存储系统

主要涉及5个方向:

  • 结构化存储
  • 非结构化存储
  • 半结构化存储
  • In-memory
  • NewSQL

1.1 结构化存储

拥有结构化的数据,比如mysql等就是典型的结构化存储的数据库

1.2 非结构化存储

非结构化存储主要强调的是高可用性,比如分布式文件系统,这里其实很好理解就是没有结构的都可以归类为非结构化存储。

1.3 半结构化存储

这种模式下,最典型的就是Bigtable,也就是NoSQL,数据主要是通过key-value的方式进行存储。

1.4 In_memory

存储在内存中的数据,比如redis就是典型的存储在内存中的数据库

1.5 NewSQL

兼备RDBMS,并且拥有NoSQL的可扩展能力。Spanner

2.分布式计算系统

投入更多的机器数量,处理更大的数据

2.1 主要分布式计算分类

  • 传统基于消息的系统,代表MPI
  • MapReduce家族
  • 图计算系统,把计算抽象成图及西宁处理
  • 基于状态的系统,状态机
  • 实时流处理系统

3. 分布式资源管理系统

这个就是分布式资源调度系统。

3.1 主要特点

  • 支持多种计算框架
  • 扩展性
  • 容错率
  • 高资源利用
  • 细颗粒度的资源分配

3.2 典型案例

k8s是最典型的分布式资源管理系统。

0x05 典型的分布式系统

  • 网格
  • P2P
  • 透明计算
  • 区块链

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

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

相关文章

互联网Java工程师面试题·Java 面试篇·第三弹

目录 39、JRE、JDK、JVM 及 JIT 之间有什么不同? 40、解释 Java 堆空间及 GC? 41、你能保证 GC 执行吗? 42、怎么获取 Java 程序使用的内存?堆使用的百分比? 43、Java 中堆和栈有什么区别? 44、“ab”…

记录阿里云服务器(Centos7.9)部署Thingsboard(3.4.2)遇到的一些问题

记录编译Thingsboard遇到的一些问题 部署了一个thingsboard项目到阿里云服务器上,历时十一天,遇到了很多困难,国内关于Thingsboard的资料确实很少,所以想着写一篇博客记录一下,或许能够给以后编译遇到类似问题的人一些…

基于nodejs+vue语言的酒店管理系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

JavaCV + FFmpeg 播放音视频

JavaCV FFmpeg 播放音视频 1、导入JavaCV库1.1 使用ffmpeg必要库1.2 简单FFmpeg命令 待续~~~~ FFmpeg documentation bytedeco/javacv - GitHub 1、导入JavaCV库 gradle下面这种会导入javacv-platform所有包,非常耗时:https://repo.maven.apache.org/…

安卓14通过“冻结”缓存应用程序腾出CPU,提高性能和内存效率

本月早些时候,我们听说更新到安卓14似乎提高了谷歌Pixel 7和Pixel 6的效率——提高了电池寿命,并在这个过程中减少了热量的产生。现在看来,安卓14的增效功能细节已经公布。 安卓侦探Mishaal Rahman在X(前身为Twitter)…

需要在 MySQL 服务器中监控的重要指标

MySQL是一个开源的关系数据库管理系统,它基于客户端-服务器模型运行,使用SQL作为其通信模式。它具有灵活性和可扩展性、高安全性、易用性以及无缝处理大型数据集的能力,由于其广泛的功能,MySQL 被用作数据库管理系统的一部分。 什…

c++踩坑点,类型转换

std::string转换到PVOID std::string转换到PVOID的方式如下 这样的话成功转换 “const char *” 类型的实参与 “WCHAR *” “const char *” 类型的实参与 “WCHAR *” 类型的形参不兼容 可以看到这种报错,可以直接强转如下: 但是在我们这里不适…

单目3D目标检测论文汇总

基于语义和几何约束的方法 1. Deep3DBox 3D Bounding Box Estimation Using Deep Learning and Geometry [CVPR2017] https://arxiv.org/pdf/1612.00496.pdfhttps://zhuanlan.zhihu.com/p/414275118 核心思想:通过利用2D bounding box与3D bounding box之间的几何约…

python基础语法(2)

基础语法 前言顺序语句条件语句什么是条件语句语法格式(1) if(2) if - else(3) if - elif - else 缩进和代码块循环语句while 循环for 循环关于continue和break 前言 本文基于pycharm编译器,也可以使用Anaconda 里的编译器,将讲解一些python的一些基础语…

LabVIEW中使用Get LV Class Default Value 出现错误1498

LabVIEW中使用Get LV Class Default Value 出现错误1498 在LabVIEW中开发了一个应用程序,其中包含可以在执行时动态配置插件的基类。生成可执行文件后,当应用程序要执行子类时,收到以下错误信息。 Error1498 occurred at Gen LV Class Defa…

ArmSoM-RK3588编解码之mpp解码demo解析:mpi_dec_test

1. 简介 [RK3588从入门到精通] 专栏总目录 mpi_dec_test 是rockchip官方解码 demo 本篇文章进行mpi_dec_test 的代码解析,解码流程解析 2. 环境介绍 硬件环境: ArmSoM-W3 RK3588开发板 软件版本: OS:ArmSoM-W3 Debian11 3.…

element-ui 以CDN 方式引入原生js开发的几个别坑 (+vue)

element-ui 以CDN 方式引入原生js开发的几个坑 最近两个月太忙了 忙的没空写文章 两个月赶出来了几个的项目 一个是雪佛兰裸眼3D的一个商品屏幕展示项目 一个是广汽云渲染的一个云看车项目 一个是奥迪中国充电桩的网页开发项目, 奥迪中国做个饭也是目前正在做的 不…

C#简单晶圆wafermapping显示示范demo

点击,双击可改变颜色 预设5行8列数据: using (fratte.at.WafermapDisplay.Form1 form_show new fratte.at.WafermapDisplay.Form1()){int[,] data_demo new int[,]{{ 0,0,0,1,0 },{ 0,5,1,0,0 },{ 1,7,6,2,3 },{ 1,0,1,2,3 },{ 0,2,0,2,3 }, { 1,5,6,…

微信小程序开发的OA会议之会议,投票,个人中心的页面搭建及模板

目录 一.自定义组件 1.1.创建 1.2.定义 1.3.编写 1.4.使用 二.会议 2.1.数据 2.2.显示 2.3. 样式 三.个人中心 3.1.页面 3.2.样式 四.投票 4.1.引用 4.2.数据 4.3.页面 4.4.样式 好啦今天就到这里了,希望能帮到你哦!!&…

Unity Animation--动画剪辑(创建动画)

创建一个新的动画编辑 创建新的动画剪辑 ,在场景中选择一个GameObject,然后打开“ 动画”窗口(顶部菜单:)“ 窗口” >“ 动画” >“ 动画”。 如果GameObject 中尚未分配任何动画剪辑,“创建”按钮…

Python 框架学习 Django篇 (四) 数据库增删改查(CURD)

在上一章结尾我们了解到如采用前后端开发分离的架构模式开发,后端几乎不负责任何展现界面的工作,只负责对数据进行管理 ,对数据的管理主要体现在: (增加、修改、删除、列出 )具体的接口参考大佬的文档BYSM…

Spring boot 集成 xxl-job

文章目录 xxl-job 简介引入xxl-job依赖配置xxl-job config添加properties文件配置BEAN模式(方法形式)步骤一:执行器项目中,开发Job方法:步骤二:调度中心,新建调度任务 xxl-job 简介 官网:https:…

蓝桥杯 (饮料换购,C++)

思路&#xff1a; 1、先加上初始的饮料数n。 2、再加上n可以兑换的饮料数n/3&#xff0c;求多余的瓶盖n%3。循环直至瓶盖数无法兑换新的一瓶饮料。 #include<iostream> using namespace std; int main() {int n,a0,sum0;cin >> n;sum n;while (n){n n a;//加上上…

车载网关通信能力解析——SV900-5G车载网关推荐

随着车联网的发展,各类车载设备对车载网关的需求日益增长。车载网关作为车与车、车与路、车与云之间连接的关键设备,其通信能力直接影响整个系统的性能。本文将详细解析车载网关的通信能力,并推荐性价比高的SV900-5G车载网关。 链接直达&#xff1a;https://www.key-iot.com/i…

【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号有括号)

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 刷题篇 一、数组实现栈1.1 题目描述1.2 思路…