更新時間:2022-05-12 10:18:14 來源:動力節(jié)點(diǎn) 瀏覽1957次
分布式高并發(fā)的處理方法有哪些?動力節(jié)點(diǎn)小編來告訴大家處理高并發(fā)的六種方法。

1.系統(tǒng)拆分,將一個系統(tǒng)拆分為多個子系統(tǒng),用dubbo來搞。然后每個系統(tǒng)連一個數(shù)據(jù)庫,這樣本來就一個庫,現(xiàn)在多個數(shù)據(jù)庫,這樣就可以抗高并發(fā)。
2.緩存,必須得用緩存。大部分的高并發(fā)場景,都是讀多寫少,那你完全可以在數(shù)據(jù)庫和緩存里都寫一份,然后讀的時候大量走緩存不就得了。畢竟人家redis輕輕松松單機(jī)幾萬的并發(fā)啊。沒問題的。所以你可以考的慮考慮你的項(xiàng)目里,那些承載主要請求讀場景,怎么用緩存來抗高并發(fā)。
3.MQ(消息隊(duì)列),必須得用MQ。可能你還是會出現(xiàn)高并發(fā)寫的場景,比如說一個業(yè)務(wù)操作里要頻繁搞數(shù)據(jù)庫幾十次,增刪改增刪改,瘋了。那高并發(fā)絕對搞掛你的系統(tǒng),人家是緩存你要是用redis來承載寫那肯定不行,數(shù)據(jù)隨時就被LRU(淘汰掉最不經(jīng)常使用的)了,數(shù)據(jù)格式還無比簡單,沒有事務(wù)支持。所以該用mysql還得用mysql啊。那你咋辦?用MQ吧,大量的寫請求灌入MQ里,排隊(duì)慢慢玩兒,后邊系統(tǒng)消費(fèi)后慢慢寫,控制在mysql承載范圍之內(nèi)。所以你得考慮考慮你的項(xiàng)目里,那些承載復(fù)雜寫業(yè)務(wù)邏輯的場景里,如何用MQ來異步寫,提升并發(fā)性。MQ單機(jī)抗幾萬并發(fā)也是ok的。
4.分庫分表,可能到了最后數(shù)據(jù)庫層面還是免不了抗高并發(fā)的要求,好吧,那么就將一個數(shù)據(jù)庫拆分為多個庫,多個庫來抗更高的并發(fā);然后將一個表拆分為多個表,每個表的數(shù)據(jù)量保持少一點(diǎn),提高sql跑的性能。
5.讀寫分離,這個就是說大部分時候數(shù)據(jù)庫可能也是讀多寫少,沒必要所有請求都集中在一個庫上吧,可以搞個主從架構(gòu),主庫寫入,從庫讀取,搞一個讀寫分離。讀流量太多的時候,還可以加更多的從庫。
6.solrCloud:
SolrCloud(solr 云)是Solr提供的分布式搜索方案,可以解決海量數(shù)據(jù)的 分布式全文檢索,因?yàn)榇罱思海虼司邆涓呖捎玫奶匦?,同時對數(shù)據(jù)進(jìn)行主從備份,避免了單點(diǎn)故障問題??梢宰龅綌?shù)據(jù)的快速恢復(fù)。并且可以動態(tài)的添加新的節(jié)點(diǎn),再對數(shù)據(jù)進(jìn)行平衡,可以做到負(fù)載均衡:
以上就是關(guān)于“分布式高并發(fā)的處理方法”介紹,大家如果想了解更多相關(guān)知識,不妨來關(guān)注一下動力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的課程內(nèi)容從入門到精通,細(xì)致全面,比較適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對大家能夠有所幫助哦。

初級 202925

初級 203221

初級 202629

初級 203743