软件工程---17.分布式软件工程

分布式系统的5个优点

  1. 资源共享
  2. 开放性
  3. 并发性
  4. 可伸缩性
  5. 容错性

分布式计算中必须考虑的设计问题

  1. 透明性:隐藏底层分布

  2. 开放性

  3. 可伸缩性

    • 三个维度
      • 规模:又分为增强扩展(单挑)增加扩展(群殴)
      • 分布
      • 可靠性
  4. 信息安全性
    主要防止以下类型的攻击

    • 拦截
    • 中断
    • 更改
    • 伪造
  5. 失效管理

云计算的三种服务

  1. 基础设施即服务IaaS、
  2. 平台即服务PaaS、
  3. 软件即服务SaaS

云计算的一个主要优点

大大降低了提供冗余系统构件的成本

分布式计算系统中计算机可能会发生两种基本类型的交互

  1. 过程式交互
  2. 基本消息交互

可伸缩性(重点)

系统的可伸缩性反映了系统能在外部需求增加的情况下提供高质量的服务的能力。
可伸缩性的三个维度是规模、分布和可管理性

规模。

系统应该增加更多的系统资源来应对越来越多的用户。理想情况下,随着用户数量的增加,系统应该自动增加规模来处理用户数量的增加。
所谓的规模,有增强扩展( scaling up,纵向扩展,单挑)增加扩展( scaling out,横向扩展,群殴)的区别

  • 增强扩展意味着用更强大的资源替换系统中的资源。例如,你或许会把服务器的内存由16GB增加到64GB。
  • 增加扩展是指向系统增加更多的资源(例如,增加一个额外的服务器与现存的服务器一起工作)。增加扩展通常要比增强扩展更有成本效益,但是这意味着系统要设计得能并行处理才行。

中间件

在这里插入图片描述

  1. 交互支持
  2. 提供公共服务

分布式系统的体系结构模式

  1. 主从体系结构
  2. 两层客户-服务器体系结构
  3. 多层客户-服务器体系结构
  4. 分布式构件体系结构
  5. 对等体系结构

主从体系结构

在这里插入图片描述

两层客户-服务器体系结构

在这里插入图片描述

多层客户-服务器体系结构

在这里插入图片描述

分布式构件体系结构

在这里插入图片描述

对等体系结构

在这里插入图片描述

Sass和Soa的区别

  1. SaaS是在远程服务器上提供功能而客户端通过Web浏览器访问的一种方法。服务器在交互会话期间维持用户的数据和状态。事务常常是长事务(例如,编辑文件)。
  2. SOA是把软件系统构建为一系列单独的无状态服务的方法。这些服务或许由多个提供商提供并且可能是分布的。典型地,事务是短事务,其中服务被调用,做-一些处理,接着返回结果。
  3. SaaS是向用户交付应用功能的方法,而SOA是应用系统的一种实现技术
  4. 使用SOA实现的系统不一定要作为Web服务被用户访问

实现SaaS的时候必须考虑以下3个重点要素

  1. 可配置性。
  2. 多租户。
  3. 可伸缩性

当在SaaS的环境下考虑可伸缩型时,我们采用的是“增加扩展”而不是“增强扩展,尽量用群殴不要用单挑

可伸缩性软件的一般准则如下

  1. 所开发的应用要使得每一个构件都实现为简单的无状态服务,每一个服务都可以运行在一个服务器上
  2. 使用异步交互来设计系统,这样引用程序就不需要等待交互结果
  3. 管理资源
  4. 设计你的数据库以允许细粒度的加锁
  5. 使用云Paas平台

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

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

相关文章

软件工程---18.面向服务的软件工程

什么是Web服务 一个松耦合、可复用的软件构件,封装了离散的功能,该功能是分布式的并且可以被程序访问。Web服务是通过标准互联网和基于XML的协议被访问的服务。 服务和软件构件之间的一个重要的区别是 服务应该总是独立的和松耦合的Web 服务没有“请求…

【剑指offer】_08.数值的整数次方

题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0 解题思路 首先一个数的任意次方,这个数有可能是负数和正数和零,然后次方也有可能是负数和正数和零 当这个数是零时&#xff…

【剑指offer】_09二叉搜索树的后序遍历序列

题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 解题思路 比如下面的这棵二叉搜索树 它的后序遍历为0214369875; 我们设当前根节点为root; 第一次…

【剑指offer】_10二叉树和为某一路径值

题目描述 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 解题思路 要求一路径的和,那么必然终止条件为叶子结点,从根结点出发…

【剑指offer】_11整数中1出现的次数

题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的…

【剑指offer】_12 数组中的逆序对

题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 解题思路 剑指offer的解法 看到这个题目&#xff0…

详解Linux下通过yum安装Mariadb/MySQL数据库(腾讯云也适用)

1. 安装Mariadb 安装命令 yum -y install mariadb mariadb-server安装完成MariaDB,首先启动MariaDB systemctl start mariadb设置开机启动 systemctl enable mariadbMariaDB的相关简单配置 此命令进入到配置相关界面 mysql_secure_installation首先是设置密码…

【剑指offer】_13 圆圈中最后的数

题目描述 年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱…

【剑指offer】_14 不用加减乘除做加法

题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用、-、*、/四则运算符号。 解题思路 首先看十进制是如何做的: 5712,三步走 第一步:相加各位的值,不算进位,得到2。 第二步&#x…

海量数据处理(位图和布隆过滤器)

哈希切割 给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址? 与上题条件相同,如何找到top K的IP?如何直接用Linux系统命令实现 解决思路 找到出现次数最多的IP地址 要找到前TopK的IP地址,就…

C++11新特性的总结

C11新特性 auto关键字(C11)基于范围的for循环(C11). 指针空值nullptr(C11)C动态内存管理序列式容器 array forward_list;继承和多态:final overridedelete:不生成默认的成员函数default:强制编译器生成默认的成员函数智能指针:unique_ptr,sh…

详解C++中右值引用

98中的引用 概念特性引用的使用场景三种传参方式效率的比较探索:引用的底层实现方式----->指针 T&------>T* constconst T&---->const T*const 引用和指针的区别 引用的总结 11中的右值引用 为什么要有右值引用 为了提高程序运行效率,C11中引…

C++中的lambda表达式和线程库

98中的一个例子 如果想要对一个数据集合中的元素进行排序&#xff0c;可以使用std::sort方法 #include <algorithm> #include <functional> int main() {int array[] {4,1,8,5,3,7,0,9,2,6};// 默认按照小于比较&#xff0c;排出来结果是升序std::sort(array, a…

文件压缩(Huaffman树的概念及其实现)

什么是压缩 想办法让源文件变得更小并能还原。 为什么要进行文件压缩 文件太大&#xff0c;节省空间提高数据再网络上传输的效率对数据有保护作用—加密 文件压缩的分类 无损压缩 源文件被压缩后&#xff0c;通过解压缩能够还原成和源文件完全相同的格式 有损压缩 解压缩之…

详解STL中的空间配置器(SGI版本)

空间配置器 1.什么是空间配置器 为各个容器高效的管理空间(空间的申请与回收)的 2.为什么需要空间配置器 各种容器----->可以存放元素---->底层需要空间 new 申请空间 operator new ---->malloc调用构造函数------完成对象的构造 动态内存管理总结 前面的容器…

【剑指offer】_15数组中重复的数字

题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的&#xff0c;但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如&#xff0c;如果输入长度为7的数组{2,3,1,0,2,5,3}&#xff0c;那么对应的…

【剑指offer】_16 构建乘积数组

题目描述 给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]A[0]*A[1]*...*A[i-1]*A[i1]*...*A[n-1]。不能使用除法。 解题思路 设有数组大小为5。 对于第一个for循环 第一步&#xff1a;b[0] 1; 第二步&#xff1a;b[1] b[0] * a[0] a[0] 第三…

【剑指offer】_17正则表达式的匹配

题目描述 请实现一个函数用来匹配包括’.‘和*的正则表达式。模式中的字符’.表示任意一个字符&#xff0c;而*表示它前面的字符可以出现任意次&#xff08;包含0次&#xff09;。 在本题中&#xff0c;匹配是指字符串的所有字符匹配整个模式。例如&#xff0c;字符串"aaa…

大四阶段的社会实践的主要目的是_疫情当前,大三大四的学生“很惨”?大一大二的学生也别松懈...

大四毕业生不容易这次疫情对于高校学生而言&#xff0c;可以说是各有各的难处&#xff0c;“这届毕业生很惨”更是屡上热搜。不可否认&#xff0c;大四毕业生确实很不容易&#xff0c;论文答辩、毕业、求职就业等都受到了影响&#xff0c;虽然有困难&#xff0c;但各方都在积极…

【剑指offer】_18 数据流中的中位数

题目描述 如何得到一个数据流中的中位数&#xff1f;如果从数据流中读出奇数个数值&#xff0c;那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值&#xff0c;那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流…