高並發三種解決方法是:1、系統拆分,將一個系統拆分為多個子系統;2、緩存,所有現代電腦系統發揮高效能的重要因素之一;3、MQ (訊息佇列),基礎資料結構中的「先進先出」的一種資料機構。
本教學操作環境:windows7系統、Dell G3電腦。
1:系統拆分,將一個系統拆分為多個子系統,用dubbo來搞。然後每個系統連一個資料庫,這樣本來就一個庫,現在多個資料庫,這樣就可以抗高並發。
2:緩存,必須得用緩存。大部分的高並發場景,都是讀多寫少,那你完全可以在資料庫和快取裡都寫一份,然後讀的時候大量走緩存不就得了。畢竟人家redis輕輕鬆鬆單機幾萬的並發啊。沒問題的。所以你可以考的慮考慮你的專案裡,那些承載主要請求讀取場景,怎麼用快取來抗高並發。
影片課程推薦→:《千萬級資料並發解決方案(理論 實戰)》
3:MQ(訊息佇列),必須得用MQ。可能你還是會出現高並發寫的場景,比如說一個業務操作裡要頻繁搞資料庫幾十次,增刪改增刪改,瘋了。那高並發絕對搞掛你的系統,人家是緩存你要是用redis來承載寫那肯定不行,數據隨時就被LRU(淘汰掉最不經常使用的)了,數據格式還無比簡單,沒有事務支持。所以該用mysql還要用mysql啊。那你咋辦?用MQ吧,大量的寫入請求灌入MQ裡,排隊慢慢玩兒,後邊系統消費後慢慢寫,控制在mysql承載範圍之內。所以你得考慮考慮你的專案裡,那些承載複雜寫業務邏輯的場景裡,如何用MQ來非同步寫,提升並發性。 MQ單機抗幾萬併發也是ok的。
擴充資料:
處理高並發另三種方法
分庫分錶
可能到了最後資料庫層面還是免不了抗高並發的要求,好吧,那麼就將一個資料庫拆分為多個庫,多個庫來抗更高的並發;然後將一個表拆分為多個表,每個表的數據量保持少一點,提高sql跑的效能。
讀寫分離
這個就是說大部分時候資料庫可能也是讀多寫少,沒必要所有請求都集中在一個庫上吧,可以搞個主從架構,主庫寫入,從庫讀取,搞一個讀寫分離。讀流量太多的時候,還可以加更多的從庫。
solrCloud
SolrCloud(solr 雲)是Solr提供的分散式搜尋方案,可以解決大量資料的分散式全文檢索,因為建置了集群,因此具備高可用的特性,同時對資料進行主從備份,避免了單點故障問題。可以做到資料的快速恢復。並且可以動態的新增新的節點,再對資料進行平衡,可以做到負載平衡。
更多電腦相關知識,請造訪常見問題欄位!
以上是高並發有哪三種解決方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!