• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      分布式架構(gòu)簡述

      2019-03-25 08:21:24劉洋
      中國科技縱橫 2019年3期
      關(guān)鍵詞:系統(tǒng)架構(gòu)互聯(lián)網(wǎng)

      劉洋

      摘 要:信息時代,互聯(lián)網(wǎng)是最引人注目的行業(yè),互聯(lián)網(wǎng)的發(fā)展,極大程度地改變了人們的生產(chǎn)生活。系統(tǒng)架構(gòu)作為互聯(lián)網(wǎng)應(yīng)用程序的基礎(chǔ),在互聯(lián)網(wǎng)發(fā)展過程中起著舉足輕重的作用。本文立足于當(dāng)下,較為系統(tǒng)地闡述了分布式系統(tǒng)架構(gòu)的發(fā)展、原理及優(yōu)缺點,探討了分布式架構(gòu)的研究現(xiàn)狀。

      關(guān)鍵詞:互聯(lián)網(wǎng);系統(tǒng)架構(gòu);分布式架構(gòu)

      中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-2064(2019)03-0018-02

      1 分布式架構(gòu)介紹

      近幾十年以來,互聯(lián)網(wǎng)技術(shù)飛速發(fā)展,對于硬件的要求也越來越高,在不斷增加應(yīng)用程序體量的過程中,傳統(tǒng)的單應(yīng)用架構(gòu)遇到了越來越多的難題。主要表現(xiàn)為:系統(tǒng)容量不足、系統(tǒng)可用性與穩(wěn)定性降低、更新應(yīng)用程序?qū)τ谟脩舻挠绊懺絹碓酱蟮?。單?yīng)用架構(gòu)逐漸不適應(yīng)新時代互聯(lián)網(wǎng)發(fā)展的需求,人們渴望出現(xiàn)一種更加穩(wěn)定可用的系統(tǒng)架構(gòu)。在這種情況下,分布式架構(gòu)應(yīng)運(yùn)而生[1]。

      分布式架構(gòu)指由多個獨(dú)立的通過網(wǎng)絡(luò)連接起來的計算機(jī)各自執(zhí)行不同的任務(wù),以達(dá)到性能提升的系統(tǒng)架構(gòu)。在分布式系統(tǒng)中,一個計算機(jī)可以同時與多個其他的計算機(jī)“連接”起來,這些計算機(jī)可以分主次,也可以不分,多個計算機(jī)也可以組成一個大的模塊與其他模塊連接,最終可以組成一個相當(dāng)復(fù)雜的系統(tǒng)。根據(jù)使用場景的不同,分布式系統(tǒng)有分布式計算、分布式存儲、分布式文件等多種系統(tǒng)形態(tài)。

      2 應(yīng)用程序架構(gòu)的發(fā)展歷程

      1946年第一臺計算機(jī)誕生以來,系統(tǒng)架構(gòu)經(jīng)歷了一個漫長的發(fā)展歷程。最初,計算機(jī)算力較弱,互聯(lián)網(wǎng)也沒有出現(xiàn),應(yīng)用程序的主要架構(gòu)就是單應(yīng)用,在互聯(lián)網(wǎng)發(fā)展初期,計算機(jī)性能的發(fā)展速度還可以適應(yīng)應(yīng)用程序的發(fā)展速度,集中式依然是主流應(yīng)用架構(gòu)。但隨著應(yīng)用程序復(fù)雜性的不斷提升,需要有高性能的大型機(jī)來滿足應(yīng)用程序的需要,而復(fù)雜的大型機(jī)成本高昂,而且需要具備高專業(yè)知識的人進(jìn)行管理。而與之相比,小型機(jī)連接的系統(tǒng)操作要求低,性價比高,更適合龐大的應(yīng)用程序。由此,產(chǎn)生了最初的分布式架構(gòu)。

      隨著用戶數(shù)量的不斷增加,一個服務(wù)器無法支持太多人訪問,增加服務(wù)器數(shù)量是最好的方式。通過增加服務(wù)器來分擔(dān)壓力,可以很快提高系統(tǒng)性能。但新的問題又出現(xiàn)了:如何進(jìn)行多服務(wù)器的任務(wù)分配?如果分配不當(dāng),就會出現(xiàn)有的服務(wù)器性能冗余,而有的服務(wù)器負(fù)載過重的問題。此時,就需要添加一個中間件:負(fù)載均衡器,來分配各個服務(wù)器的負(fù)載[2]。

      隨著數(shù)據(jù)庫容量的持續(xù)增大,出現(xiàn)了很多用戶訪問同一數(shù)據(jù)的情況,這些重復(fù)訪問對數(shù)據(jù)庫是一個很大的負(fù)擔(dān),于是,出現(xiàn)了緩存機(jī)制,通過對高頻且變化較少的數(shù)據(jù)的提前緩存,可以處理相當(dāng)一部分請求,大大減小了數(shù)據(jù)庫的負(fù)擔(dān)。

      應(yīng)用逐漸發(fā)展,用戶服務(wù)器的負(fù)載也越來越大,于是我們將用戶服務(wù)器進(jìn)行功能拆分,如分為信息接收模塊,信息處理模塊,信息輸出模塊。信息處理模塊又可以根據(jù)信息的類別分為多種信息的處理模塊。

      通過不同粒度,不同層次的分離,分布式系統(tǒng)架構(gòu)就變得復(fù)雜了起來。

      3 分布式架構(gòu)的主要工作原理

      3.1 理論原理

      分布式架構(gòu)通過網(wǎng)絡(luò)連接獨(dú)立的計算機(jī)以實現(xiàn)功能,在實踐中,分布式系統(tǒng)遇到的問題可以分為兩類:

      如何使單個計算機(jī)穩(wěn)定無誤地運(yùn)行。

      如何使計算機(jī)之間的連接穩(wěn)固可靠。

      接下來我們從這兩個方面出發(fā),對分布式架構(gòu)的工作原理進(jìn)行闡述。

      3.1.1 單體工作

      負(fù)載均衡算法:分布式系統(tǒng)處理數(shù)據(jù)時,需要盡可能地使提供相同服務(wù)的計算機(jī)均衡地執(zhí)行任務(wù),以求最大程度地利用單個計算機(jī)的性能。下文介紹幾個常用的負(fù)載均衡算法。

      輪詢法指將請求有順序地逐個發(fā)給各個服務(wù)器。這種算法可以使用簡單的方式做到相當(dāng)程度的平均分配,但沒有考慮到各臺機(jī)器之間的性能差異,在系統(tǒng)并發(fā)量較高時,容易出現(xiàn)高性能計算機(jī)性能過剩,低性能計算機(jī)性能不足的問題[3]。

      加權(quán)輪詢法指根據(jù)各臺計算機(jī)性能的高低為不同的計算機(jī)分配權(quán)重,根據(jù)權(quán)重進(jìn)行分配,能者多勞,這種算法更加合理。但有新機(jī)器加入時,如果依然按照該規(guī)則分配,原來的服務(wù)器由于有原先分配的請求,負(fù)擔(dān)較大,負(fù)載依舊不均衡[4]。

      動態(tài)輪詢法指根據(jù)各臺服務(wù)器的負(fù)載壓力進(jìn)行任務(wù)分配。動態(tài)輪詢可以最大程度地均衡各個服務(wù)器的負(fù)載壓力,但它比前兩種多出了一個獲取服務(wù)器狀態(tài)的過程,這個過程本身就需要消耗資源。

      哈希方式指利用數(shù)據(jù)的某個特征計算出一個哈希值,根據(jù)哈希值決定處理數(shù)據(jù)的服務(wù)器。哈希算法的好處是可以將具有某一特征的數(shù)據(jù)分配到特定的服務(wù)器進(jìn)行處理。但它的缺點也特別明顯:當(dāng)某一特征的數(shù)據(jù)量過大時,就會出現(xiàn)“數(shù)據(jù)傾斜”的問題,而且由于數(shù)據(jù)的特征總數(shù)常常是固定的,加入服務(wù)器時,如果新的計算機(jī)數(shù)與原來的計算機(jī)數(shù)不成倍數(shù),就需要大規(guī)模地進(jìn)行數(shù)據(jù)遷移。

      一致性哈希使計算出的哈希值域成為一個封閉的環(huán),將節(jié)點分布到環(huán)上,每個節(jié)點處理自己到下一個節(jié)點的數(shù)據(jù)。這種方式解決了哈希方式拓展性不高的問題,但當(dāng)進(jìn)行節(jié)點增減時,與增減節(jié)點相鄰的節(jié)點就會出現(xiàn)負(fù)載過小或過大的問題,負(fù)載難以均勻分配。

      單機(jī)故障:宕機(jī)就是某些原因?qū)е碌挠嬎銠C(jī)無法正常工作的狀態(tài)。這是一種很常見的服務(wù)器故障,一般需要人工重啟機(jī)器,但機(jī)器的內(nèi)存信息將丟失,這時就需要從數(shù)據(jù)庫中讀取數(shù)據(jù)或回放日志進(jìn)行狀態(tài)恢復(fù)。

      存儲數(shù)據(jù)丟失也是一種常見的故障,通常由硬盤問題導(dǎo)致。解決此問題的唯一方法是設(shè)立數(shù)據(jù)副本,重新寫入信息。

      3.1.2 網(wǎng)絡(luò)連接

      由于網(wǎng)絡(luò)連接的不穩(wěn)定,分布式系統(tǒng)運(yùn)行時時常出現(xiàn)消息丟失,消息亂序,數(shù)據(jù)錯誤等問題。

      消息丟失是指通信過程中由于網(wǎng)絡(luò)問題導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)丟失。消息丟失會影響網(wǎng)絡(luò)的一致性,甚至?xí)霈F(xiàn)網(wǎng)絡(luò)分化的問題。

      消息亂序指消息不是按照發(fā)送順序到達(dá)接收端。對于需要實時更新的網(wǎng)絡(luò),消息亂序是一個很大的問題。

      數(shù)據(jù)錯誤是指網(wǎng)絡(luò)傳輸過程中有可能發(fā)生的比特錯誤等導(dǎo)致的消息錯誤。數(shù)據(jù)錯誤會使網(wǎng)絡(luò)中出現(xiàn)無用信息,從而影響系統(tǒng)一致性。消息錯誤一般需要使用校驗碼系統(tǒng)進(jìn)行檢查才能發(fā)現(xiàn)。

      對于網(wǎng)絡(luò)問題導(dǎo)致的消息傳輸問題,最簡單的解決方式是重新發(fā)送,但有的情況不允許重新發(fā)送,例如網(wǎng)絡(luò)付款信息。這時可以引入一個中間件:消息隊列。消息隊列可以根據(jù)接收端返回的信息決定是否繼續(xù)發(fā)送信息,發(fā)送成功后將信息刪除。

      3.2 實際案例分析

      任何理論都需要進(jìn)行實際的應(yīng)用,下文將舉一個生產(chǎn)過程中的實例來補(bǔ)充解釋上述理論。

      圖1是一個跨公司的購物系統(tǒng)的示意圖,用戶通過乙公司向甲公司購買產(chǎn)品,所以需要通過乙公司查詢信息,向甲公司付款。購買時,用戶先將訂單信息發(fā)送至訂單乙,訂單乙將訂單信息發(fā)送至財務(wù)乙,財務(wù)乙向財務(wù)甲請求付款鏈接并發(fā)給用戶,用戶向甲公司付款后,財務(wù)甲將付款成功信息反饋給財務(wù)乙并通知訂單甲,訂單甲通知訂單乙下單成功。在實際運(yùn)行過程中,這一套系統(tǒng)出現(xiàn)了兩個問題。一個問題出現(xiàn)在乙公司內(nèi)部,乙公司訂單模塊向財務(wù)模塊請求信息時網(wǎng)絡(luò)中斷,訂單信息無法發(fā)送。乙公司在解決這個問題時,在本公司的訂單和財務(wù)模塊之間添加了一個消息隊列,如圖2所示,從而實現(xiàn)了高可用性的信息傳遞。

      第二個問題出在兩公司的信息傳遞過程中,甲公司將信息傳給乙公司時,由于乙公司機(jī)器原因,沒有收到,導(dǎo)致付款信息無法返回給用戶,這對于購物系統(tǒng)是一個大問題,因為用戶不可能再次執(zhí)行付款操作,且由于信息保密,無法在兩公司之間添加消息隊列。解決問題時,如圖3所示,乙公司的技術(shù)人員使用了一個代理服務(wù)器,由代理服務(wù)器代為接受信息,同時在乙公司內(nèi)設(shè)置兩個訂單服務(wù)器,這樣,當(dāng)其中一臺訂單服務(wù)器發(fā)生宕機(jī)時,另一臺服務(wù)器可以立即代其執(zhí)行任務(wù),保證了消息的成功發(fā)送,也給另一臺服務(wù)器的重新部署爭取了時間。

      通過這個案例,我們可以得到幾點啟示:

      (1)提高分布式系統(tǒng)可用性的一個重要方法是添加中間件。(2)當(dāng)服務(wù)器有宕機(jī)危險時,可通過添加備用服務(wù)器增強(qiáng)系統(tǒng)的穩(wěn)定性。

      4 兩種架構(gòu)的優(yōu)缺點對比

      單應(yīng)用架構(gòu):

      優(yōu)點:結(jié)構(gòu)簡單,易于開發(fā);結(jié)構(gòu)明確,易于管理;結(jié)構(gòu)集中,易于排障;系統(tǒng)運(yùn)行不受網(wǎng)絡(luò)影響。

      缺點:系統(tǒng)穩(wěn)定性與可用性低;系統(tǒng)啟動慢;更新應(yīng)用時對應(yīng)用影響大;對硬件要求高。

      分布式架構(gòu):

      優(yōu)點:系統(tǒng)穩(wěn)定性與可用性高;系統(tǒng)啟動快;更新應(yīng)用時對應(yīng)用影響小;對硬件要求低。

      缺點:結(jié)構(gòu)復(fù)雜,不易開發(fā);結(jié)構(gòu)龐大,不易管理;結(jié)構(gòu)分散,不易排障;受網(wǎng)絡(luò)影響較大。

      5 結(jié)語與展望

      分布式架構(gòu)使多個計算機(jī)通過網(wǎng)絡(luò)進(jìn)行連接,極大地提高了系統(tǒng)的穩(wěn)定性、可用性、可拓展性。在應(yīng)用程序不斷大型化、復(fù)雜化的今天,有著重要的現(xiàn)實意義??梢灶A(yù)見,通過不斷的改進(jìn)發(fā)展,趨利避害,未來分布式架構(gòu)一定能發(fā)揮出更大的作用。

      參考文獻(xiàn)

      [1] 張華偉,熊璋,歐陽元新.分布式系統(tǒng)中異地數(shù)據(jù)庫的數(shù)據(jù)一致性維護(hù)[J].計算機(jī)工程與應(yīng)用,2004,40(23):172-175.

      [2] 葛五祥,陳志剛.基于三層B/S模式的分布式系統(tǒng)設(shè)計[J].計算技術(shù)與自動化,2004,23(3):73-75.

      [3] 陳志剛,李登,曾志文.分布式系統(tǒng)中動態(tài)負(fù)載均衡實現(xiàn)模型[J].中南大學(xué)學(xué)報:自然科學(xué)版,2001,32(6):635-639.

      [4] 陳志剛,李登,曾志文.分布式系統(tǒng)中一種動態(tài)負(fù)載均衡策略、相關(guān)模型及算法研究[J].小型微型計算機(jī)系統(tǒng),2002,23(12):1434-1437.

      猜你喜歡
      系統(tǒng)架構(gòu)互聯(lián)網(wǎng)
      面向管理信息系統(tǒng)開發(fā)的軟件工廠技術(shù)研究
      人工智能在智能機(jī)器人系統(tǒng)中的應(yīng)用研究
      基于云計算的多媒體網(wǎng)絡(luò)學(xué)習(xí)平臺系統(tǒng)架構(gòu)
      吉林省氣象服務(wù)平臺技術(shù)研究及設(shè)計思路
      榆林學(xué)院智慧校園系統(tǒng)架構(gòu)的分析與設(shè)計
      企業(yè)大數(shù)據(jù)建設(shè)的技術(shù)瓶頸
      科技視界(2016年23期)2016-11-04 18:06:49
      “互聯(lián)網(wǎng)+”環(huán)境之下的著作權(quán)保護(hù)
      今傳媒(2016年9期)2016-10-15 22:15:57
      “互聯(lián)網(wǎng)+”對傳統(tǒng)圖書出版的影響和推動作用
      今傳媒(2016年9期)2016-10-15 22:09:11
      從“數(shù)據(jù)新聞”看當(dāng)前互聯(lián)網(wǎng)新聞信息傳播生態(tài)
      今傳媒(2016年9期)2016-10-15 22:06:04
      互聯(lián)網(wǎng)背景下大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項目的實施
      考試周刊(2016年79期)2016-10-13 23:23:28
      崇义县| 荔波县| 黑山县| 湘潭县| 栖霞市| 垫江县| 贵南县| 红河县| 彰武县| 武强县| 比如县| 肃宁县| 霍林郭勒市| 纳雍县| 彭阳县| 灵丘县| 同江市| 五大连池市| 龙南县| 周宁县| 湘潭市| 东光县| 宽甸| 新龙县| 陆丰市| 北辰区| 牟定县| 扶绥县| 鱼台县| 繁昌县| 桦南县| 通道| 隆子县| 武陟县| 东辽县| 华宁县| 海门市| 汉源县| 玛多县| 黎川县| 古浪县|