<strong id="6sqeg"><object id="6sqeg"></object></strong>
<tt id="6sqeg"><s id="6sqeg"></s></tt>
  • <code id="6sqeg"></code>
  • 歡迎訪問牛耳教育官網 專注實戰IT培訓技術20年!
    400-0731-162
    當前位置:IT培訓機構 > Java培訓 > 到底什么是分布式系統?

    到底什么是分布式系統?

    時間: 2021-08-10 | 作者: admin | 分類:Java培訓 | 關鍵字:Java,分布式系統 | 閱讀量:

    導讀:當單體應用的性能不能滿足日漸增長的業務需求的時候,就會出現分布式系統。好那接下來的時間里就讓我帶你們走進分布式系統的世界。

    ?    當單體應用的性能不能滿足日漸增長的業務需求的時候,就會出現分布式系統。好那接下來的時間里就讓我帶你們走進分布式系統的世界。

    ?分布式系統的優勢和挑戰

       什么是分布式系統?

     

       到底什么才是分布式系統?看了很多文章,感覺很少有文章能把這個概念解釋的既簡單,又清楚的。結合這自己的理解,我對分布式系統的概念做了下面的總結。

     

       關于分布式系統的定義問題,我傾向從字面上來解釋:分開部署的系統就可以稱為分布式系統。比如,一個系統原本由前端頁面、后臺服務和后端數據庫組成,將這些服務全都部署在一臺機器上,這種應用叫單體應用?,F在我們將數據庫拿出來,單獨部署到另外一臺機器上,后端服務和數據庫之間通過網絡通信,這種部署方式就是一種最簡單的分布式系統。

     

       再比如說,原本有一個后端服務,能支持500QPS的并發請求?,F在業務量上升,需要能支持1000QPS的并發量。此時你有兩個方案:

     

       第一種就是增加系統的硬件性能,進行垂直擴展,此時系統還是單體應用;第二種方案就是再部署另外一臺機器,同樣也支持500QPS,這樣總體就能達到1000QPS的性能需求了。

     

       方案二的系統也是一種分布式系統,將本來可以部署一臺機器的應用原樣復制一份到另外的機器上再部署一份。方案二中,部署的多臺應用被也被稱為一個集群,可以說集群是分布式系統的一種。

     

       再比如說,原本有一個系統中包含訂單服務、產品服務和支付等服務?,F在隨著業務的不斷復雜化,將訂單服務、產品服務和支付服務單獨分拆出來形成訂單系統、產品系統和支付系統,交由專人負責。這種系統將原本的單體應用分拆成多個系統部署到不同的機器上,也是分布式系統,而且我們平時開發中所指的分布式系統大多是指這種系統。其實稍微有點分布式系統知識的同學可以看出來,這種系統就是最簡單的微服務系統。所以微服務也是分布式系統的一種。

    ?分布式系統的優勢和挑戰

       分布式系統的優勢

     

       單體應用的優勢在于它的簡單,但是其劣勢也相當明顯。一個就是容易出現單點故障,還有一個就是容易達到性能瓶頸。分布式系統很大程度上就是為了解決單體應用上面的問題而出現的。

     

       分布式系統將一些廉價的PC機通過網絡連接起來,共同完成工作,并且在系統中提供冗余來解決高可用的問題。分布式系統通過廉價的PC機減輕了企業購買大型機的高昂費用,通過系統冗余又解決了HA的問題。

     

       雖然分布式系統通過多工作節點解決了單體應用面臨的高成本和可用性問題,但是它引入了對分布式系統內部工作節點的協調問題。

     

       分布式系統的挑戰

     

       分布式系統的核心就是解決一個問題:對分布式系統內部工作節點的協調問題。

     

       看似簡單的問題會因網絡丟包、節點宕機恢復等場景變得異常復雜。由此才衍生出很多概念、協議和理論。為探究共識問題最大能解決的程度,于是有了CAP邊界理論;為在特定條件和范圍內解決該問題,于是有一致性協議Paxos、Raft、Zab和ViewstampedReplication;為構建這些協議,于是有多數派、Leader選舉、租約、邏輯時鐘等概念和方法。

    ?分布式系統的優勢和挑戰

       又因為分布式系統分開部署的特點,在具體實施開發過程中,我們又要解決:

     

       1、分布式事務問題;

     

       2、session共享問題;

     

       3、分布式鎖問題;

     

       4、全局時鐘問題;

     

       還有一些列其他問題。雖然分布式系統解決了單體系統的單點故障和性能瓶頸問題,但同時也帶來了一系列“弊端”。但是技術就是這樣,沒有一個技術是完美的。我一直有個觀點就是:假如在一個領域中出現了一個完美的解決方案,那么在這個領域,人就不再有價值。分布式系統的復雜性給我們帶來了更多學習的空間,讓善于學習的程序員有更多發揮自身價值的機會。

    免責聲明:本文內容來源于公開網絡,若涉及侵權聯系盡快刪除!,【本文標題和網址】到底什么是分布式系統?:http://www.eaglelawnandsnow.com/java_news/1006.html
    申請免費試學
    快捷咨詢
    資深IT講師一對一為您解答IT問題
    電話
    咨詢服務電話
    400-0731-162
    微信
    IT培訓_長沙java培訓機構_專注于實戰IT培訓技術20年-牛耳教育官網
    關注了解更多IT知識
    QQ
    熱門課程
    java軟件開發課程 Java是一種可以撰寫跨平臺應用程不齊人60%Java工程師缺口序的面向對象的程序設計語言。Java技術具有卓越的通用性、高效性、...
    嵌入式應用開發課程 嵌入式開發就是指在嵌入式操作系統下進行開發,包括在系統化設計指導下的硬件和軟件以及綜合研發。除暫且分離硬件的...
    軟件測試課程 軟件測試具有人才缺口大、發展方向廣、專業無限制、適合零基礎、技術上手快、職業生涯穩等優勢。 人才缺口大 國內測試...
    Web前端開發課程 web前端開發是創建Web頁面或app等前端界面呈現給用戶的過程,通過HTML,CSS及JavaScript以及衍生出來的各種技術、框架、解決方...
    java+大數據課程 什么是Java大數據? Java,是一門面向對象編程語言,具有功能強大和簡單易用的特征。作為**受歡迎的計算機語言,發展至今...
    python人工智能課程 Python是一門神奇的編程語言,它具有簡單易學、就業面廣、就業薪資高、競爭壓力小、開發效率高、行業風口等6個優勢,下...
    熱門資訊
    本文:(零基礎學java)零基礎也能學Java,5大Java學習方法!,最近有很多同學來問小編,關于學習java的方法,下面小編根據...
    大家的生活已經離不開嵌入式就連常用的共享單車都離不開嵌入式。所以越來越多的人看中了嵌入式的就業前景,轉行來做嵌...
    Web前端培訓機構的好壞直接決定了你學習后的就業薪資,市面上web前端培訓機構那么多,應該如何選擇靠譜的web前端培訓機構...
    當談到Python時,一般指的是CPython。但Python實際上是一門語言規范,只是定義了Python這門語言應該具備哪些語言要素,應當能...
    目前,Python非常流行并且被廣泛使用。它是目前最熱門的行業之一,競爭激烈,工資高,未來發展出色。但是對于學習Pytho...
    打算參加嵌入式培訓的同學對于嵌入式培訓課程的內容都特別的關心,只有在了解了課程內容之后才能更好的知道這個嵌入式...
    2020年學習嵌入式晚不晚?1、學技術不像學藝術,只要堅持,任何時候學都不晚。很多人對于學習嵌入式應用開發都會有所顧...
    本文(零基礎學python)0基礎學習Python容易犯哪些錯誤呢?主要介紹1. 忘記寫冒號 在if、elif、else、for、while、class、def 語句后...
    本文:IT培訓就業感言(牛耳教育IT培訓就業感言),介紹:轉眼間幾個月在牛耳教育的IT培訓就結束了,從學習到就業也算是...
    it培訓學校有用嗎?其實判斷IT培訓學校有沒有用,看培訓的課程是否能滿足自己的需求就可以了,如果培訓的課程自己都了...