云安全—分布式基础

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.mzph.cn/news/113533.shtml

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

相关文章

用3D扫描生成合成数据

合成数据集(Synthetic Datasets)正在成为计算机视觉模型训练的标准部分。 虽然新工具使合成数据集变得更容易访问,但除了标准机器学习过程之外,许多工具还需要对 3D 建模有基本的了解。 最简单的捷径是从现实世界中获取现有对象并…

Vue中的v-if和v-show指令有什么区别?

在Vue中,v-if和v-show是两个常用的指令,用于根据条件控制元素的显示和隐藏。虽然它们都可以根据条件来切换元素的可见性,但它们的实现和行为有一些区别。 1:编译时机: v-if是在编译阶段进行条件判断,如果条件为false,则在DOM中不会渲染该元素及其子元素;v-show则是在运…

基于材料生成优化的BP神经网络(分类应用) - 附代码

基于材料生成优化的BP神经网络(分类应用) - 附代码 文章目录 基于材料生成优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.材料生成优化BP神经网络3.1 BP神经网络参数设置3.2 材料生成算法应用 4.测试结果…

28 mysql 数据记录的 存储更新删除

前言 前面 我们探讨了 索引记录的 新增, 更新, 删除 这里 我们来看一下 mysql 的核心数据记录的 新增更新删除 这里 来看一下 增删改 的相关实现 数据记录 和 索引记录 的处理方式是一致的 mysql 数据记录的存储 新增部分参见 自增长主键的实现 以及 记录的插入 mysql…

keep-alive 是 Vue 的一个内置组件,用于缓存其他组件的实例,以避免重复渲染和销毁,它可以在需要频繁切换的组件之间提供性能优化

目录 keep-alive 使用 keep-alive 的示例代码: 手动清除组件缓存的示例代码: keep-alive 组件有以下几个优点: keep-alive 的原理: 使用 keep-alive 组件,你可以包裹需要缓存的组件,然后这些组件在切…

1.3 矩阵

一、向量与矩阵 下面是三个向量 u \boldsymbol u u、 v \boldsymbol v v、 w \boldsymbol w w: u [ 1 − 1 0 ] v [ 0 1 − 1 ] w [ 0 0 1 ] \boldsymbol u\begin{bmatrix}\,\,\,\,1\\-1\\\,\,\,\,0\end{bmatrix}\kern 10pt\boldsymbol v\begin{bmatrix}\,\,\,…

RemObjects Elements 12.0 Crack

Elements 是一个现代多功能软件开发工具链。 它支持六种流行的编程语言:Oxygene (Object Pascal)、C#、Java、Mercury (Visual Basic.NET™)、Go 和 Swift,适用于所有现代平台。 使用 Elements,您可以为您喜欢的任何平台进行编程- 无论是单…

基于Ubuntu Server编译YTM32 SDK工程

基于Ubuntu Server编译YTM32 SDK工程 文章目录 基于Ubuntu Server编译YTM32 SDK工程需求下载软件包安装与配置配置虚拟机联网模式启用ssh连接启用ftp连接安装armgcc编译工具链确认make工具 验证 需求 在Linux系统环境下搭建SDK的编译环境: 方便加入到持续集成工具…

中间件安全-CVE复现IISApacheTomcatNginx漏洞复现

目录 中间件安全&CVE复现&IIS&Apache&Tomcat&Nginx漏洞复现中间件-IIS安全问题中间件-Nginx安全问题漏洞复现Nginx 解析漏洞复现Nginx 文件名逻辑漏洞 中间件-Apache-RCE&目录遍历&文件解析等安全问题漏洞复现漏洞复现CVE_2021_42013 RCE代码执行&…

TCP/IP(二十二)TCP 实战抓包分析(六)TCP 快速建立连接

一 TCP Fast Open 快速建立连接 说明: 之前讲解TCP 相关知识点遗漏了这个知识点,补充上 ① TFO简介 ② 请求 Fast Open Cookie过程 "原理图" ③ 真正开始 TCP Fast Open 重点: TFO 使 SYN包 可以包含payload 数据 ④ 抓包分析 1、…

AD20原理图库的制作

1、打开“51单片机最小系统”的工程文件。 2、创建原理图库文件:单击“文件”菜单,选择“新的”选项中的“库”选项,再选择“原理图库”,进入原理图库元件的编辑界面。 3、保存原理图库文件:选择“文件”菜单&#xff…

CPU飙高问题排查命令

1. 远程客户端连接服务器,top命令查看cpu占用最高的进程id 2. (top -H -p 进程pid) 命令: 找出进程里面线程占用CPU高的线程有哪些 ? 3. (printf 0x%x\n 线程id) 线程id转16进制 4. (./jstack PID | grep TID(十六进制) -A 30)

设计模式之建造者模式

什么是建造者模式 建造者模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。这种模式将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 举一个简单的例子:假设我们要创建一个复杂的对象,例如一…

vscode摸鱼插件开发

不知道大家在写代码的时候,摸不摸鱼,是不是时不时得打开一下微博,看看今天发生了什么大事,又有谁塌房,而你没有及时赶上。 为此,我决定开发一个vscode插件,来查看微博热搜 插件名称&#xff1…

influxDB学习记录

一、官网 influxdb官方英文文档:https://docs.influxdata.com/influxdb/v1.8/query_language/spec/influxdb中文文档:https://jasper-zhang1.gitbooks.io/influxdb/content/ 二、centos安装与基本配置 influxdb安装与基本配置(centos) 三…

论文阅读[51]通过深度学习快速识别荧光组分

【论文基本信息】 标题:Fast identification of fluorescent components in three-dimensional excitation-emission matrix fluorescence spectra via deep learning 标题译名:通过深度学习快速识别 三维激发-发射矩阵荧光光谱中的荧光组分 期刊与年份&…

【量化交易笔记】10.建立最简单的交易策略

概述 量化说得简单一些用策略进行股票交易,在实施交易之前,需要制定策略,并回测试共效果 为了把交易说明清楚,将这个过程,能简单,就简单,总之,简单,简单再简单。 以下主…

unity NPR 卡通渲染

文章目录 一、 介绍二、 素材准备三、 步骤四、 shader代码五、工程链接 一、 介绍 NPR是计算机图形学中的一类,即非真实感绘制(Non-photorealistic rendering),主要用于模拟艺术式的绘制风格,也用于发展新绘制风格,形式一般是卡…

冰蝎默认加密的流量解密

破解冰蝎的默认加密 流量包分析 上传的冰蝎流量包 POST /web-zh/DVWA/vulnerabilities/upload/ HTTP/1.1 Host: 192.168.197.111 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0 Accept: text/html,application/xhtmlxml,a…