軟件工程---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.pswp.cn/news/383105.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/383105.shtml
英文地址,請注明出處:http://en.pswp.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()方法讀取數據流…