自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分布式系統(tǒng)的特征、瓶頸以及性能指標(biāo)介紹

系統(tǒng)
本文將從三個(gè)方面來講述一下我理解的"分布式系統(tǒng)"。

分布式的概念存在年頭有點(diǎn)久了,在正式進(jìn)入我們《分布式專欄》之前,感覺有必要來聊一聊,什么是分布式,分布式特點(diǎn)是什么,它又有哪些問題,在了解完這個(gè)概念之后,再去看它的架構(gòu)設(shè)計(jì),理論奠基可能幫助會(huì)更大。

本文將從三個(gè)方面來講述一下我理解的"分布式系統(tǒng)":

分布式系統(tǒng)的特點(diǎn)

分布式系統(tǒng)面臨的挑戰(zhàn)

如何衡量一個(gè)分布式系統(tǒng)

1.分布式系統(tǒng)特點(diǎn)

什么是分布式系統(tǒng),看一下wiki上的描述

1.1 定義

分布式系統(tǒng)(distributed system)是建立在網(wǎng)絡(luò)之上的軟件系統(tǒng)。正是因?yàn)檐浖奶匦裕苑植际较到y(tǒng)具有高度的內(nèi)聚性和透明性。因此,網(wǎng)絡(luò)和分布式系統(tǒng)之間的區(qū)別更多的在于高層軟件(特別是操作系統(tǒng)),而不是硬件

分布式系統(tǒng)(建立在網(wǎng)絡(luò)之上的軟件系統(tǒng))_百度百科

分布式操作系統(tǒng)(Distributed operating system),是一種軟件,它是許多獨(dú)立的,網(wǎng)絡(luò)連接的,通訊的,并且物理上分離的計(jì)算節(jié)點(diǎn)的集合[1]。每個(gè)節(jié)點(diǎn)包含全局總操作系統(tǒng)的一個(gè)特定的軟件子集。每個(gè)軟件子集是兩個(gè)不同的服務(wù)置備的復(fù)合物[2]。第一個(gè)服務(wù)是一個(gè)普遍存在的最小的內(nèi)核,或微內(nèi)核,直接控制該節(jié)點(diǎn)的硬件。第二個(gè)服務(wù)是協(xié)調(diào)節(jié)點(diǎn)的獨(dú)立的和協(xié)同的活動(dòng)系統(tǒng)管理組件的更高級(jí)別的集合。這些組件抽象微內(nèi)核功能,和支持用戶應(yīng)用程序[3]。

  • 分布式操作系統(tǒng) - 維基百科,自由的百科全書

Distributed system: is a system in which components located on networked computers communicate and coordinate their actions by passing messages. The components interact with each other in order to achieve a common goal[3].

  • Distributed systems - Computer Science Wiki

雖然上面幾個(gè)描述不完全相同,但是含義其實(shí)也差不了太多;基于我個(gè)人的理解,用大白話來描述一下分布式系統(tǒng),就是“一個(gè)系統(tǒng)的服務(wù)能力,由網(wǎng)絡(luò)上多個(gè)節(jié)點(diǎn)共同提供”,正如其名的“分布一詞”

在了解完分布式系統(tǒng)的概念之后,接下來抓住其主要特點(diǎn),來加深這個(gè)分布式的理解

1.2 分布性

分布式系統(tǒng)分布在多個(gè)節(jié)點(diǎn)(可以理解為多個(gè)計(jì)算機(jī)),這些節(jié)點(diǎn)可以是網(wǎng)絡(luò)上任意的一臺(tái)計(jì)算機(jī),即在空間上沒有原則性的限制

1.3 對(duì)等性

分布式系統(tǒng)中有很多的節(jié)點(diǎn),這些節(jié)點(diǎn)之間沒有主從、優(yōu)劣直說,它們應(yīng)該是對(duì)等的,從服務(wù)能力來說,訪問分布式系統(tǒng)中的任何一個(gè)節(jié)點(diǎn),整個(gè)服務(wù)請(qǐng)求應(yīng)該都是等價(jià)的

看到這里可能就會(huì)有一個(gè)疑問了,分布式系統(tǒng)中經(jīng)典主從架構(gòu),數(shù)據(jù)拆分架構(gòu),就不滿足這個(gè)對(duì)等特性了?。ㄟ@個(gè)問題先留著,后續(xù)再詳情中進(jìn)行解答)

1.4 自治性

分布式系統(tǒng)中的各個(gè)節(jié)點(diǎn)都有自己的計(jì)算能力,各自具有獨(dú)立的處理數(shù)據(jù)的功能。通常,彼此在地位上是平等的,無主次之分,既能自治地進(jìn)行工作,又能利用共享的通信線路來傳送信息,協(xié)調(diào)任務(wù)處理。

1.5 并發(fā)性

分布式系統(tǒng)既然存在多個(gè)節(jié)點(diǎn),那么天然就存在多個(gè)節(jié)點(diǎn)的同事響應(yīng)請(qǐng)求的能力,即并發(fā)性支持,如何做好分布式系統(tǒng)的并發(fā)控制則是所有分布式系統(tǒng)需要解決的一個(gè)問題

2. 分布式系統(tǒng)面臨的問題

當(dāng)系統(tǒng)分布在多個(gè)節(jié)點(diǎn)之上時(shí),自然而然就帶來了很多單機(jī)場(chǎng)景下不會(huì)有問題,如經(jīng)典的 分布式系統(tǒng)的8個(gè)謬誤 | 一灰灰Learning

2.1 全局時(shí)鐘

分布式系統(tǒng)的多個(gè)節(jié)點(diǎn),如何保證每個(gè)節(jié)點(diǎn)的時(shí)鐘一致?這個(gè)是需要重點(diǎn)考慮的問題

我們知道大名鼎鼎的分布式主鍵生成算法 “雪花算法” 就是利用了機(jī)器時(shí)鐘來作為算法因子,如果一個(gè)系統(tǒng)的多個(gè)節(jié)點(diǎn)不能保證時(shí)鐘統(tǒng)一,那這個(gè)算法的唯一性將無法得到保障

2.2 網(wǎng)絡(luò)延遲、異常

網(wǎng)絡(luò)是有開銷的,多個(gè)節(jié)點(diǎn)之間的通信是有成本的,既然存在網(wǎng)絡(luò)的開銷、或異常狀況,那么如何保證多個(gè)節(jié)點(diǎn)的數(shù)據(jù)一致性呢?當(dāng)無法保證數(shù)據(jù)的一致性時(shí),如何提供分布式系統(tǒng)的對(duì)等性呢?

在經(jīng)典的CAP理論中,對(duì)于P(網(wǎng)絡(luò)分區(qū))一般都是需要保障的,一個(gè)系統(tǒng)存在多個(gè)計(jì)算節(jié)點(diǎn),那么網(wǎng)絡(luò)問題將不可避免,網(wǎng)絡(luò)分區(qū)必然會(huì)存在

2.3 數(shù)據(jù)一致性

如何保證所有節(jié)點(diǎn)中的數(shù)據(jù)完全一致是一個(gè)巨大的挑戰(zhàn),這個(gè)問題比較好理解,我們操作分布式系統(tǒng)中的一個(gè)節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)修改,如果要保證數(shù)據(jù)一致性,則要求所有的節(jié)點(diǎn),同步收到這個(gè)修改

但是我們需要注意的時(shí),網(wǎng)絡(luò)是不可靠的,且網(wǎng)絡(luò)的傳輸是存在延遲的,如何衡量數(shù)據(jù)的一致性和服務(wù)的可用性則是我們?cè)谠O(shè)計(jì)一個(gè)分布式系統(tǒng)中需要取舍的

2.4 節(jié)點(diǎn)異常

機(jī)器宕機(jī)屬于不可抗力因素,如果分布式系統(tǒng)中的一個(gè)節(jié)點(diǎn)宕機(jī)了,整個(gè)系統(tǒng)會(huì)怎么樣?要如何確保機(jī)器宕機(jī)也不會(huì)影響系統(tǒng)的可用性呢?機(jī)器恢復(fù)之后,又應(yīng)該如何保證數(shù)據(jù)的一致性呢?又應(yīng)該如何判斷一個(gè)節(jié)點(diǎn)是否正常呢?

2.5 資源競(jìng)爭(zhēng)

前面說到分布式系統(tǒng)天然支持并發(fā),那么隨之而來的問題則是如何資源競(jìng)爭(zhēng)的問題;當(dāng)一個(gè)資源同一時(shí)刻只允許一個(gè)實(shí)例訪問時(shí),怎么處理?多個(gè)系統(tǒng)同時(shí)訪問一個(gè)資源是否會(huì)存在數(shù)據(jù)版本差異性(如經(jīng)典的ABA問題)、數(shù)據(jù)一致性問題?

基于這個(gè)問題,分布式鎖可以說是應(yīng)運(yùn)而生,相信各位開發(fā)大佬都不會(huì)陌生這個(gè)知識(shí)點(diǎn)

2.6 全局協(xié)調(diào)

這個(gè)協(xié)調(diào)怎么理解呢?舉幾個(gè)簡(jiǎn)單的實(shí)例

  • 如何判斷分布式系統(tǒng)中那些節(jié)點(diǎn)正常提供服務(wù),那些節(jié)點(diǎn)故障
  • 如一個(gè)任務(wù)希望在分布式系統(tǒng)中只執(zhí)行一次,那么應(yīng)該哪個(gè)節(jié)點(diǎn)執(zhí)行這個(gè)任務(wù)呢?
  • 如一組有先后順序的請(qǐng)求發(fā)送給分布式系統(tǒng),但是由于網(wǎng)絡(luò)問題,可能出現(xiàn)后面的請(qǐng)求先被系統(tǒng)接收到,這種場(chǎng)景怎么處理呢?
  • 一個(gè)用戶已經(jīng)登錄,如何在所有節(jié)點(diǎn)中確認(rèn)他的身份呢?

2.7 一灰灰的小結(jié)

實(shí)際上分布式系統(tǒng)面臨的挑戰(zhàn)并不止于上面這些,一個(gè)具體的系統(tǒng)面臨的問題可能各不相同,但總的來說,分布式系統(tǒng)的理論基礎(chǔ)會(huì)給我們非常好的指引方向,這一節(jié)推薦查看 * 分布式設(shè)計(jì)模式綜述 | 一灰灰Learning

3. 分布式系統(tǒng)的衡量指標(biāo)

最后再來看一下如何衡量一個(gè)分布式系統(tǒng)的“好差”,它的指標(biāo)有哪些

3.1 性能指標(biāo)

常見的性能指標(biāo)如rt, QPS, TPS來判斷一個(gè)系統(tǒng)的承載能力,重點(diǎn)關(guān)注是哪個(gè)要點(diǎn)

  • 響應(yīng)延遲
  • 并發(fā)能力
  • 事務(wù)處理能力

3.2 可用性

這個(gè)就是傳說中你的系統(tǒng)達(dá)到幾個(gè)9的那個(gè)指標(biāo),即系統(tǒng)的異常時(shí)間占總的可用時(shí)間的比例

統(tǒng)的可用性可以用系統(tǒng)停服務(wù)的時(shí)間與正常服務(wù)的時(shí)間的比例來衡量,也可以用某功能的失敗次數(shù)與成功次數(shù)的比例來衡量??捎眯允欠植际降闹匾笜?biāo),衡量了系統(tǒng)的魯棒性,是系統(tǒng)容錯(cuò)能力的體現(xiàn)。

3.3 擴(kuò)展性

系統(tǒng)的可擴(kuò)展性(scalability)指分布式系統(tǒng)通過擴(kuò)展集群機(jī)器規(guī)模提高系統(tǒng)性能(吞吐、延遲、并發(fā))、存儲(chǔ)容量、計(jì)算能力的特性

最簡(jiǎn)單來講,就是你的系統(tǒng)能不能直接加機(jī)器,來解決性能瓶頸,如果能加機(jī)器,有沒有上限(如由于數(shù)據(jù)庫(kù)的連接數(shù)限制了機(jī)器的數(shù)量上限, 如機(jī)器加到某個(gè)程度之后,服務(wù)能力沒有明顯提升)

3.4 一致性

分布式系統(tǒng)為了提高可用性,總是不可避免的使用副本的機(jī)制,從而引發(fā)副本一致性的問題。越是強(qiáng)的一致的性模型,對(duì)于用戶使用來說使用起來越簡(jiǎn)單

4. 總結(jié)

這一篇文章相對(duì)來說比較干燥,全是文字描述,介紹下什么是分布式系統(tǒng),分布系統(tǒng)的特點(diǎn)及面對(duì)的問題和衡量指標(biāo),提煉一下關(guān)鍵要素,如下

分布式系統(tǒng)的特點(diǎn)

  • 分布性
  • 對(duì)等性
  • 并發(fā)性
  • 自治性

分布式系統(tǒng)面臨的挑戰(zhàn)

  • 全局時(shí)鐘
  • 網(wǎng)絡(luò)延遲、異常
  • 數(shù)據(jù)一致性
  • 節(jié)點(diǎn)異常
  • 資源競(jìng)爭(zhēng)
  • 全局協(xié)調(diào)

分布式系統(tǒng)衡量指標(biāo)

  • 性能指標(biāo)
  • 可用性
  • 擴(kuò)展性
  • 一致性
責(zé)任編輯:張燕妮 來源: 一灰灰blog
相關(guān)推薦

2023-11-20 09:48:13

Linux性能指標(biāo)命令

2010-09-08 11:38:27

2021-09-08 10:42:45

前端面試性能指標(biāo)

2023-04-12 08:01:10

系統(tǒng)性能系統(tǒng)指標(biāo)

2009-12-11 15:17:35

2011-05-04 13:53:08

jQuery

2024-09-20 08:32:21

2022-05-02 08:56:04

前端性能指標(biāo)

2013-06-17 10:19:30

交換機(jī)性能交換機(jī)參數(shù)交換機(jī)

2023-11-25 20:16:22

前端

2023-12-29 15:30:41

內(nèi)存存儲(chǔ)

2011-07-28 14:58:49

HP ProLiant服務(wù)器

2023-12-17 14:49:20

前端首屏?xí)r間

2011-06-07 14:16:38

雙絞線

2023-09-08 15:37:29

軟件開發(fā)性能

2021-07-05 08:58:17

Golang分布式性能

2017-02-22 11:51:11

FortiGate企業(yè)級(jí)防火墻NGFW

2024-06-28 11:54:20

2020-10-19 08:53:08

Redis性能指標(biāo)監(jiān)控

2018-01-04 09:23:21

WEB服務(wù)器性能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)