日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
阿里大牛詳解分布式系統(tǒng),大型網(wǎng)站分布式系統(tǒng)實(shí)戰(zhàn)解析

阿里大牛詳解分布式系統(tǒng),大型網(wǎng)站分布式系統(tǒng)實(shí)戰(zhàn)解析

作者:JavaSpring高級進(jìn)階 2019-08-05 07:58:01
新聞
架構(gòu)
分布式
分布式 分布式系統(tǒng)從當(dāng)初的CORBA 到EJB,Web和SOA,從集群到現(xiàn)在的NoSQL 云計(jì)算和大數(shù)據(jù)Hadoop等分布式系統(tǒng),橫向水平擴(kuò)展Scala out/in是分布式系統(tǒng)設(shè)計(jì)的一個(gè)特點(diǎn),可靠性、容錯(cuò)性是兩個(gè)質(zhì)量指標(biāo)。

創(chuàng)新互聯(lián)客戶idc服務(wù)中心,提供綿陽主機(jī)托管、成都服務(wù)器、成都主機(jī)托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過各地的服務(wù)中心,我們向成都用戶提供優(yōu)質(zhì)廉價(jià)的產(chǎn)品以及開放、透明、穩(wěn)定、高性價(jià)比的服務(wù),資深網(wǎng)絡(luò)工程師在機(jī)房提供7*24小時(shí)標(biāo)準(zhǔn)級技術(shù)保障。

分布式系統(tǒng)

分布式系統(tǒng)從當(dāng)初的CORBA 到EJB,Web和SOA,從集群到現(xiàn)在的NoSQL 云計(jì)算和大數(shù)據(jù)Hadoop等分布式系統(tǒng),橫向水平擴(kuò)展Scala out/in是分布式系統(tǒng)設(shè)計(jì)的一個(gè)特點(diǎn),可靠性、容錯(cuò)性是兩個(gè)質(zhì)量指標(biāo)。

什么是分布式系統(tǒng)?

  1. 一大批服務(wù)器組成一個(gè)集合,對于用戶來說仍然是一個(gè)整體連貫系統(tǒng)。
  2. A. Tanenbaum定義:分布式網(wǎng)絡(luò)的計(jì)算機(jī)中的組件之間協(xié)調(diào)動作是通過消息進(jìn)行通訊。
  3. G. Coulouris定義:當(dāng)你知道有一臺電腦崩潰,但是你的軟件運(yùn)行從來不會停止。
  4. Leslie Lamport定義:分布式系統(tǒng)是這樣系統(tǒng):旨在支持應(yīng)用程序和服務(wù)的開發(fā),可以利用物理架構(gòu) 由多個(gè)自治的處理元素,不共享主內(nèi)存,但通過網(wǎng)絡(luò)發(fā)送異步消息合作。
  5. 與分層應(yīng)用區(qū)別:分層的應(yīng)用程序(例如,3層)是 劃分應(yīng)用程序邏輯,是一種邏輯分層,而不是物理,而分布式系統(tǒng)DS是物理分層,和實(shí)際部署有關(guān)。

與傳統(tǒng)集中式系統(tǒng)相比:

集中式系統(tǒng)是一種Scale out/in,縱向擴(kuò)展,要么向上升級服務(wù)器到中大型機(jī),要么升級多核,增加CPU核數(shù),集中式縱向擴(kuò)展適合計(jì)算聚合度比較高的數(shù)據(jù),而分布式適合計(jì)算松散數(shù)據(jù),非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)。無論采取哪種擴(kuò)展伸縮方案,需要根據(jù)業(yè)務(wù)數(shù)據(jù)特點(diǎn)而定。

任何分布式系統(tǒng)總是需要完成兩個(gè)任務(wù):計(jì)算和存儲。計(jì)算和存儲分離是分布式系統(tǒng)的重要特征。而通常在集中式或單機(jī)系統(tǒng)中,這兩者是可能結(jié)合在一起,比如通過一個(gè)SQL語句實(shí)現(xiàn)查詢后排序,查詢是從存儲中獲得數(shù)據(jù),排序是屬于計(jì)算,因此這個(gè)SQL語句實(shí)際是將計(jì)算和存儲耦合在一起。在應(yīng)對大數(shù)據(jù)或大并發(fā)的情況下,這種方便的捆綁帶來性能問題,而分布式計(jì)算和分布式存儲雖然帶來復(fù)雜性,但是也為系統(tǒng)的處理能力打開了上升拓展的空間。

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

  1. 并發(fā)性:共享資源,采取ACID或Base原則,見:CAP定理。
  2. 分布式系統(tǒng)設(shè)計(jì)遵循CAP定理, CAP是:Consistency(一致性),Availability(可用性), 和 Partition tolerance(分區(qū)容錯(cuò)性) 可靠性 簡稱,CAP定理認(rèn)為,CAP三種之中,只能同時(shí)滿足其中兩種。
  3. 可擴(kuò)展性Scalable是重要特點(diǎn),通過擴(kuò)展能夠獲得高性能 高吞吐量 低延遲Latency。
  4. 可靠性/可用性:故障發(fā)現(xiàn)和處理以及恢復(fù) 容錯(cuò)處理。在一個(gè)正常運(yùn)作系統(tǒng)中存在一個(gè)時(shí)間比例的條件。 如果一個(gè)用戶不能訪問系統(tǒng)比例增大,它被認(rèn)為是不可用??捎眯怨剑?/li>
  5. Availability = uptime / (uptime + downtime)
  6. 容錯(cuò)failover是指一個(gè)系統(tǒng)在錯(cuò)誤發(fā)生的情況下,仍然一切運(yùn)行正常。表示這個(gè)系統(tǒng)是寬容錯(cuò)誤的。
  7. 消息處理: 具體產(chǎn)品有:RabbitMQ ZeroMQ Netty等等。
  8. 異構(gòu)性: 不同操作系統(tǒng) 硬件 程序語言 開發(fā)者,中間件是一種解決方案。
  9. 安全性:授權(quán)認(rèn)證 SSO單點(diǎn)登錄 Oauth等等。

定位命令:

  1. 標(biāo)識資源 URLs
  2. 命名服務(wù)Naming services
  3. 定位尋找Lookup
  4. 主要見SOA中的服務(wù)查找。如Zookeeper實(shí)現(xiàn)服務(wù)查找。

透明性:

  1. 訪問透明度: 使用相同的操作本地和遠(yuǎn)程資源
  2. 位置透明:訪問資源無需知道其物理或網(wǎng)絡(luò)位置
  3. 并發(fā)透明度:多個(gè)流程可以同時(shí)運(yùn)行訪問使用共享資源,當(dāng)不能干擾堵塞 它們的處理流程
  4. 復(fù)制透明性: 資源的多個(gè)實(shí)例可以被用來復(fù)制以提高可靠性和性能,但無需由用戶編制專門的應(yīng)用程序來實(shí)現(xiàn)。
  5. 故障透明度:出現(xiàn)軟件硬件故障時(shí),使用戶和應(yīng)用方案能繼續(xù)完成他們的任務(wù)不受影響。
  6. 移動透明度:允許在 系統(tǒng)存在移動的資源和客戶。
  7. 性能透明度:允許系統(tǒng)重新配置以 提高性能負(fù)荷變化
  8. 縮放透明度:在應(yīng)用程序結(jié)構(gòu)沒有變化的情況下能夠在規(guī)模上擴(kuò)展或伸縮系統(tǒng),以提高吞吐量處理能力。

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

分布式系統(tǒng)是難于理解、設(shè)計(jì)、構(gòu)建 和管理的,他們將比單個(gè)機(jī)器成倍還要多的變量引入到設(shè)計(jì)中,使應(yīng)用程序的根源問題更難發(fā)現(xiàn)。SLA(服務(wù)水平協(xié)議)是衡量停機(jī)和/或性能下降的標(biāo)準(zhǔn),大多數(shù)現(xiàn)代應(yīng)用程序有一個(gè)期望的彈性SLA水平,通常按"9"的數(shù)量增加(如,每月99.9或99.99%可用性)。每個(gè)額外的9變得越來越難實(shí)現(xiàn)。

讓事情更加復(fù)雜的是,我們越來越常見地看到:分布式系統(tǒng)的故障表現(xiàn)為間歇性錯(cuò)誤或性能下降(俗稱的限電)。這些失敗模式耗費(fèi)更多時(shí)間來診斷。例如,Joyent經(jīng)營一些分布式系統(tǒng)作為其云計(jì)算基礎(chǔ)設(shè)施的一部分。在這樣一個(gè)系統(tǒng)中,包括高可用性、分布式的鍵/值存儲,Joyent最近經(jīng)歷了瞬態(tài)應(yīng)用程序超時(shí)。對于大多數(shù)用戶系統(tǒng)運(yùn)行正常,其反應(yīng)延遲也是在SLA范圍內(nèi)。然而,有百分之5 - 10的請求超出了一個(gè)預(yù)定義的程序超時(shí)。這樣的失敗問題并沒有重現(xiàn)在開發(fā)或測試環(huán)境中,他們經(jīng)常會"消失"幾分鐘到幾小時(shí)。排除這個(gè)故障的根本是需要大量數(shù)據(jù)存儲的系統(tǒng)分析。

這些系統(tǒng)包括:數(shù)據(jù)存儲API(node . js),RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))和由系統(tǒng)內(nèi)部使用(PostgreSQL)以及操作系統(tǒng)和終端用戶應(yīng)用程序依賴于的鍵/值系統(tǒng)。最終,導(dǎo)致過度的根本問題是在應(yīng)用程序語義鎖定,但確定之前需要相當(dāng)大的數(shù)據(jù)收集和相關(guān)性工作,包括工程師耗費(fèi)大量工作時(shí)間以及學(xué)習(xí)不同領(lǐng)域的專業(yè)知識。

分布式系統(tǒng)由兩個(gè)物理因素的限制:

  • 節(jié)點(diǎn)的數(shù)量(能夠增加所需的存儲和計(jì)算能力)
  • 節(jié)點(diǎn)之間的距離(信息的傳送距離,最好以光速)

這兩個(gè)約束導(dǎo)致下面值得挑戰(zhàn)的情況發(fā)生:

  • 獨(dú)立節(jié)點(diǎn)隨著數(shù)目的增加發(fā)生故障的概率增加(減少可用的和管理成本增加)
  • 獨(dú)立節(jié)點(diǎn)隨著數(shù)目增加可能會增加節(jié)點(diǎn)之間的通信的消耗(隨著規(guī)模的增大性能降低)
  • 地理距離的增加提高遙遠(yuǎn)的節(jié)點(diǎn)之間的通信延遲(減少某些操作的性能)

如何架構(gòu)分布式系統(tǒng)

適用于分布式系統(tǒng)架構(gòu)的最常見的一個(gè)術(shù)語是SOA(面向服務(wù)架構(gòu))。SOA可以避免不愉快的CORBA(公共對象請求代理體系結(jié)構(gòu)),通過WS - *標(biāo)準(zhǔn),一套松散耦合的Web服務(wù)完成獨(dú)立的小功能,并且彼此獨(dú)立,他們是一個(gè)有彈性的分布式系統(tǒng)的基礎(chǔ)。對比上一代,服務(wù)是新流程,他們是正確的抽象層次系統(tǒng)中的離散功能。

構(gòu)建面向服務(wù)架構(gòu)的第一步是確定每個(gè)函數(shù)功能如何構(gòu)成整體業(yè)務(wù)目標(biāo),將這些業(yè)務(wù)映射到離散的服務(wù),且具有獨(dú)立的斷層邊界、擴(kuò)展性和數(shù)據(jù)負(fù)載量。確定為每個(gè)服務(wù)時(shí),您必須考慮下列事項(xiàng):

  • 地理。系統(tǒng)是全球還是地區(qū)單獨(dú)運(yùn)行?
  • 數(shù)據(jù)隔離。這個(gè)系統(tǒng)提供一個(gè)單個(gè)或多租戶模型?
  • SLAs。可用性 延遲 吞吐量 一致性和冗余性都必須定義。
  • 安全。IAAA (身份identity, 驗(yàn)證authentication, 授權(quán)authorization, 和 審核audit), 數(shù)據(jù)的保密性和隱私性都必須考慮
  • 可用性跟蹤。了解系統(tǒng)的使用是每天系統(tǒng)的日常運(yùn)作,如容量規(guī)劃。也可能用于執(zhí)行計(jì)費(fèi)系統(tǒng)的使用和/或治理(配額/速度限制)。
  • 部署和配置管理。系統(tǒng)是如何部署更新?

分布式系統(tǒng)的模型抽象

  • 系統(tǒng)模型(異步/同步)
  • 失效模型(崩潰故障,分區(qū))
  • 一致性模型(強(qiáng),最終)

通常,我們最熟悉的模式(例如,一個(gè)分布式系統(tǒng)上實(shí)現(xiàn)共享內(nèi)存抽象)是太昂貴了。一個(gè)分布式系統(tǒng)越弱勢越能保證其中元素有更大的行動自由,從而煥發(fā)潛在的更大的性能- 但它也可能導(dǎo)致很難管理。這就需要我們有極大智慧,不能以犧牲性能換來管理的方便性。因此,試圖將分布式系統(tǒng)看成一個(gè)統(tǒng)一的單一系統(tǒng)的思維會阻礙分布式系統(tǒng)的擴(kuò)展。

分布式系統(tǒng)遵循CAP定律,在高一致性 高可用性和分區(qū)容錯(cuò)性之間三選二:

  • CA (consistency高一致性 + availability高可用性). 使用2pc 兩階段事務(wù)提交來保證。其缺點(diǎn)無法實(shí)現(xiàn)分區(qū)容錯(cuò)性,一旦某個(gè)操作失敗,整個(gè)系統(tǒng)就出錯(cuò),無法容忍(水至清則無魚)。
  • CP (consistency高一致性 + partition tolerance分區(qū)容錯(cuò)性). 使用Paxos來保證,可用性降低。
  • AP (availability高可用性 + partition tolerance分區(qū)容錯(cuò)性). 使用Gossip等實(shí)現(xiàn)最終一致性,如Dynamo.
  • 如何正確理解CAP理論?

分布式系統(tǒng)的設(shè)計(jì)技巧:分區(qū)和復(fù)制

對于一個(gè)數(shù)據(jù)集有兩種設(shè)計(jì)方式:

  1. 分區(qū):它可以被分割在多個(gè)節(jié)點(diǎn),以允許更多的并行處理。有更好的性能,但是容錯(cuò)能力低。
  2. 復(fù)制:它也可以被復(fù)制或緩存在不同的節(jié)點(diǎn)上,以減少在客戶端和服務(wù)器之間的距離,更強(qiáng)的容錯(cuò)能力,但是復(fù)制消耗性能。關(guān)鍵是復(fù)制數(shù)據(jù)之間的一致性。弱一致性提供更低的延遲和更高的可用性。

分布式系統(tǒng)的設(shè)計(jì)技巧:時(shí)鐘和順序

分布式系統(tǒng)針對計(jì)算和存儲的策略是不同的,對于數(shù)據(jù)的存儲主要是分區(qū)和復(fù)制,而對于計(jì)算主要是保證事件的順序,因?yàn)榉植际接?jì)算任務(wù)是由事件驅(qū)動的,比如Storm等等。那么事件的順序代表了業(yè)務(wù)邏輯的順序,事件有時(shí)是樹形嵌套事件,可靠性就是必須保證一個(gè)樹形集合所有事件都得到網(wǎng)站執(zhí)行是一個(gè)事務(wù)原子的。


當(dāng)前文章:阿里大牛詳解分布式系統(tǒng),大型網(wǎng)站分布式系統(tǒng)實(shí)戰(zhàn)解析
標(biāo)題路徑:http://m.5511xx.com/article/cdcddgd.html