怎么理解分布式、高并發(fā)、多線程?

當(dāng)提起這三個(gè)詞的時(shí)候,是不是很多人都認(rèn)為分布式=高并發(fā)=多線程?

當(dāng)面試官問到高并發(fā)系統(tǒng)可以采用哪些手段來解決,或者被問到分布式系統(tǒng)如何解決一致性的問題,是不是一臉懵逼?

確實(shí),在一開始接觸的時(shí)候,不少人都會將三者混淆,誤以為所謂的分布式高并發(fā)的系統(tǒng)就是能同時(shí)供海量用戶訪問,而采用多線程手段不就是可以提供系統(tǒng)的并發(fā)能力嗎?實(shí)際上,他們?nèi)齻€(gè)總是相伴而生,但側(cè)重點(diǎn)又有不同。

什么是分布式?

分布式更多的一個(gè)概念,是為了解決單個(gè)物理服務(wù)器容量和性能瓶頸問題而采用的優(yōu)化手段。該領(lǐng)域需要解決的問題極多,在不同的技術(shù)層面上,又包括:分布式文件系統(tǒng)、分布式緩存、分布式數(shù)據(jù)庫、分布式計(jì)算等,一些名詞如Hadoop、zookeeper、MQ等都跟分布式有關(guān)。從理念上講,分布式的實(shí)現(xiàn)有兩種形式:

水平擴(kuò)展:當(dāng)一臺機(jī)器扛不住流量時(shí),就通過添加機(jī)器的方式,將流量平分到所有服務(wù)器上,所有機(jī)器都可以提供相當(dāng)?shù)姆?wù);

垂直拆分:前端有多種查詢需求時(shí),一臺機(jī)器扛不住,可以將不同的需求分發(fā)到不同的機(jī)器上,比如A機(jī)器處理余票查詢的請求,B機(jī)器處理支付的請求。

什么是高并發(fā)?

相對于分布式來講,高并發(fā)在解決的問題上會集中一些,其反應(yīng)的是同時(shí)有多少量:比如在線直播服務(wù),同時(shí)有上萬人觀看。

高并發(fā)可以通過分布式技術(shù)去解決,將并發(fā)流量分到不同的物理服務(wù)器上。但除此之外,還可以有很多其他優(yōu)化手段:比如使用緩存系統(tǒng),將所有的,靜態(tài)內(nèi)容放到CDN等;還可以使用多線程技術(shù)將一臺服務(wù)器的服務(wù)能力最大化。

什么是多線程?

多線程是指從軟件或者硬件上實(shí)現(xiàn)多個(gè)線程并發(fā)執(zhí)行的技術(shù),它更多的是解決CPU調(diào)度多個(gè)進(jìn)程的問題,從而讓這些進(jìn)程看上去是同時(shí)執(zhí)行(實(shí)際是交替運(yùn)行的)。

這幾個(gè)概念中,多線程解決的問題是最明確的,手段也是比較單一的,基本上遇到的最大問題就是線程安全。在JAVA語言中,需要對JVM內(nèi)存模型、指令重排等深入了解,才能寫出一份高質(zhì)量的多線程代碼。

總結(jié)一下:

●分布式是從物理資源的角度去將不同的機(jī)器組成一個(gè)整體對外服務(wù),技術(shù)范圍非常廣且難度非常大,有了這個(gè)基礎(chǔ),高并發(fā)、高吞吐等系統(tǒng)很容易構(gòu)建;

● 高并發(fā)是從業(yè)務(wù)角度去描述系統(tǒng)的能力,實(shí)現(xiàn)高并發(fā)的手段可以采用分布式,也可以采用諸如緩存、CDN等,當(dāng)然也包括多線程;

● 多線程則聚焦于如何使用編程語言將CPU調(diào)度能力最大化。

分布式與高并發(fā)系統(tǒng),涉及到大量的概念和知識點(diǎn),如果沒有系統(tǒng)的學(xué)習(xí),很容易會雜糅概念而辨識不清,在面試與實(shí)際工作中都會遇到困難。如果你從事Java開發(fā),具備1年以上工作經(jīng)驗(yàn),希望深入淺出了解Java分布式、高并發(fā)等技術(shù)要點(diǎn),渴望實(shí)現(xiàn)技術(shù)和職業(yè)成長上的雙重突破,

從事java十余年,現(xiàn)在把架構(gòu)師必須具備的一些技術(shù)總結(jié)出來一套思維導(dǎo)圖和錄制了一些相關(guān)視頻,分享給大家,供大家參考。

需要相關(guān)資料可以加群:810589193免費(fèi)獲取

開源框架

程序員每天都和代碼打交道。經(jīng)過數(shù)年的基礎(chǔ)教育和職業(yè)培訓(xùn),大部分程序員都會「寫」代碼,或者至少會抄代碼和改代碼。但是,會讀代碼的并不在多數(shù),會讀代碼又真正讀懂一些大項(xiàng)目的源碼的,少之又少。這也造成了很多錯(cuò)誤看源碼的方式。

那要如何正確的分析源碼呢?

高性能

隨著我們的業(yè)務(wù)量越來越大和越重要,單體的架構(gòu)模式已經(jīng)無法對應(yīng)大規(guī)模的應(yīng)用場景,而且系統(tǒng)中決不能存在單點(diǎn)故障導(dǎo)致整體不可用,所以只有垂直或是水平拆分業(yè)務(wù)系統(tǒng),使其形成一個(gè)分布式的架構(gòu),利用分布式架構(gòu)來冗余系統(tǒng)消除單點(diǎn)的故障,從而提高整個(gè)系統(tǒng)的可用性。同時(shí)高性能系統(tǒng)的模塊重用度更高,速度更快,擴(kuò)展性更高是大型的項(xiàng)目必不可少的環(huán)節(jié)。

微服務(wù)

關(guān)于微服務(wù)架構(gòu)的取舍

1、在合適的項(xiàng)目,合適的團(tuán)隊(duì),采用微服務(wù)架構(gòu)收益會大于成本。

2、微服務(wù)架構(gòu)有很多吸引人的地方,但在擁抱微服務(wù)之前,也需要認(rèn)清它所帶來的挑戰(zhàn)。

3、需要避免為了“微服務(wù)”而“微服務(wù)”。

4、微服務(wù)架構(gòu)引入策略 – 對傳統(tǒng)企業(yè)而言,開始時(shí)可以考慮引入部分合適的微服務(wù)架構(gòu)原則對已有系統(tǒng)進(jìn)行改造或新建微服務(wù)應(yīng)用,逐步探索及積累微服務(wù)架構(gòu)經(jīng)驗(yàn),而非全盤實(shí)施微服務(wù)架構(gòu)。

架構(gòu)師筑基

我們不僅僅對項(xiàng)目要運(yùn)籌帷幄,還要能解決一切性能問題。只有深入學(xué)習(xí)JVM底層原理,mysql底層優(yōu)化以及Tomcat調(diào)優(yōu),才能達(dá)到知其然,知其所以然的效果。除了性能優(yōu)化之外,也能提供通用的常見思路以及方案選型的考慮點(diǎn),幫助大家培養(yǎng)在方案選型時(shí)的意識、思維以及做各種權(quán)衡的能力。

團(tuán)隊(duì)協(xié)作

所謂團(tuán)隊(duì)合作能力,是指建立在團(tuán)隊(duì)的基礎(chǔ)之上,發(fā)揮團(tuán)隊(duì)精神、互補(bǔ)互助以達(dá)到團(tuán)隊(duì)最大工作效率的能力。對于團(tuán)隊(duì)的成員來說,不僅要有個(gè)人能力,更需要有在不同的位置上各盡所能、與其他成員協(xié)調(diào)合作的能力。

項(xiàng)目實(shí)戰(zhàn)

要想立足于互聯(lián)網(wǎng)公司,且能在互聯(lián)網(wǎng)浪潮中不被淹沒,對于項(xiàng)目的開發(fā)實(shí)戰(zhàn)演練是不必可少的技能,也是對自身能力的一個(gè)衡量,有多少的量對等于獲得多少的回報(bào)??此坪唵蔚囊粋€(gè)項(xiàng)目需求圖譜,其中的底層原理,實(shí)現(xiàn)原理又能知道多少?

對于所有職業(yè)來說,稀缺度才是決定了這個(gè)職業(yè)的價(jià)值。做不到稀缺,你就永遠(yuǎn)有被別人替代的危險(xiǎn),你就永遠(yuǎn)陷入了所謂的碼農(nóng)生活之中。本次給大家推薦一個(gè)免費(fèi)的學(xué)習(xí)群810589193,點(diǎn)擊鏈接加入群聊【Java架構(gòu)學(xué)習(xí)交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl,里面概括Java分布式、高并發(fā)、JVM、高性能、微服務(wù)、區(qū)塊鏈、大數(shù)據(jù)等技術(shù),以及面試資源等。

成就大神不是夢,還是要看你加不加

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 南京的記憶 文/江川 自那以后 我們才開始奮力前行 逐漸驕傲的國家 不能丟落珍貴的記憶 一個(gè)時(shí)代的痛楚 另一個(gè)時(shí)代...
    不見江川閱讀 317評論 0 5
  • 片段一:選自《堅(jiān)持,一種可以養(yǎng)成的習(xí)慣》 【R:閱讀原文】 盡量找出不被侵犯的“圣地" 利用不容易被工作或私事影響...
    MASTERJIANG閱讀 112評論 0 0
  • 我想要的,就是無論有多難,依然有那么一個(gè)人,和我相依相守。 最初走進(jìn)婚姻殿堂的兩個(gè)人,必定是喜歡...
    Nancy_Xu閱讀 577評論 0 1
  • 西風(fēng)凋卻黃連葉,冬日新添果滿枝。 莫羨松竹春永駐,且學(xué)造化樂四時(shí)。 楝樹又稱黃連樹,春發(fā)嫩葉,夏開紫花,秋葉染金,...
    江南煙雨閱讀 962評論 1 5

友情鏈接更多精彩內(nèi)容