什麼是分散式提到分散式,一定就會涉及到集中式,相比於集中式,分散式說明存在很多個節點,各個節點彼此協同工作。從分散式的概念可以看出,分散式強調彼此的協同,每個節點負責部分工
2021-07-07 03:02:44
提到分散式,一定就會涉及到集中式,相比於集中式,分散式說明存在很多個節點,各個節點彼此協同工作。
從分散式的概念可以看出,分散式強調彼此的協同,每個節點負責部分工作,比如我們的一個商城系統,可以分成訂單系統,使用者系統,簡訊系統,支付系統等等。從外部來看他們是一個整體,提供一個商城的完整功能。
集中式的部署很方便,而且不會有節點網路問題,不會出現不統一的問題,不會出現可用性等問題,雖然集中式有各種各樣的優點,但是面對高併發的時候,面對更大資料請求的時候,顯然單個節點無法滿足要求,這個時候就需要將請求分配到不同的機器節點上,這樣才能讓請求得到正確響應。
不同於我們寫的集中式編碼方式,在涉及到分散式的時候,我們需要考慮session的共享問題,對於session的共享問題,我們一般通過redis來進行資料的共享。
對於同一個使用者的請求,如果被分配到不同的機器上可能會導致資料的不一致問題,這個時候我們需要考慮讓同一個使用者的請求被同一個節點機器處理,這就需要考慮對使用者的ip做hash處理,讓同一個ip被相同的機器處理。
對於檔案的儲存我們也需要進行處理,我們不能將檔案儲存到各個機器上,我們應該做的是找一個單獨的檔案伺服器進行檔案的儲存管理,不過一般我們都是採用雲物件儲存,這樣所有的靜態資源請求都會由單獨的雲端儲存進行管理,可以進行cdn快取,大大提高了伺服器的負載。
對於在一個主機上的資源併發訪問,我們可以通過加鎖來解決,但是對於分散式機器上的資源,如果有併發請求的話,我們就需要使用分散式鎖來進行處理。
對於分散式鎖有很多種解決方案,主要是資料庫mysql,分散式排程zooker,記憶體資料庫redis等。
很多情況下,我們都是採用redlock進行分散式鎖的處理。
提到分散式,離不開的問題就是一致性問題,為了保證資料的一致性,我們就需要通過一定的演算法來實現,而常用的分散式一致性演算法Paxos、Raft。
分散式和我們平時開發集中式的業務有著本質上的區別,原本不會產生問題的地方,因為網路或者其它原因都會產生問題,我們能夠做的就是充分考慮到可能出現的問題,學習別人已經總結出來的演算法和架構,這樣在遇到問題的時候才能有的放矢。
相關文章
什麼是分散式提到分散式,一定就會涉及到集中式,相比於集中式,分散式說明存在很多個節點,各個節點彼此協同工作。從分散式的概念可以看出,分散式強調彼此的協同,每個節點負責部分工
2021-07-07 03:02:44
iOS又曝嚴重漏洞早在前段時間,我們就釋出過一則關於 iOS 系統存在的 WiFi 程式碼漏洞,惡意使用者可以通過新建一個特殊程式碼命名的 WiFi 熱點,讓連結者的裝置網路癱瘓。具體操
2021-07-07 03:02:34
如今的手機行業已經進入了下半年,而下半年手機競爭更加激烈,也更加熱鬧了,蘋果會發布iPhone13系列手機,三星Galaxy Note21系列也會發布,還有推遲了幾個月的華為P50系列等,當然也離
2021-07-07 03:02:26
【7月6日訊】相信大家都知道,自從華為手機業務深陷"缺芯困境"以後,也開始不斷地遭遇」滑鐵盧「,從最開始的海外手機市場銷量、市場份額暴跌,再到國內手機市場銷量、市場份額不斷
2021-07-07 03:02:17
畢業季之後迎來的開學季,相信很多小夥伴都準備入手新的膝上型電腦做新裝備了,尤其是準備迎來美好生活的準大學生們。新電腦剛到手,該為它準備怎樣的開機儀式?該如何做初始設定?該
2021-07-07 03:02:10
果粉之家,專業蘋果手機技術研究十年!您身邊的蘋果專家~儘管iOS系統一直以安全和流暢出名,但它也不是一個完美的系統,依舊存在著各式各樣的Bug。比如在上個月底,推特上一位名為@Ca
2021-07-07 03:02:01