處理高併發的方法

2021-10-18 19:17:17 字數 992 閱讀 2522

1:系統拆分

將乙個系統拆分為多個子系統,用dubbo來搞。然後每個系統連乙個資料庫,這樣本來就乙個庫,現在多個資料庫,這樣就可以抗高併發。

2:快取

大部分的高併發場景,都是讀多寫少,那你完全可以在資料庫和快取裡都寫乙份,然後讀的時候大量走快取不就得了。畢竟人家redis輕輕鬆鬆單機幾萬的併發啊。沒問題的。所以你可以考的慮考慮你的專案裡,那些承載主要請求讀場景,怎麼用快取來抗高併發。

3:mq(訊息佇列)

可能你還是會出現高併發寫的場景,比如說乙個業務操作裡要頻繁搞資料庫幾十次,增刪改增刪改,瘋了。那高併發絕對搞掛你的系統,人家是快取你要是用redis來承載寫那肯定不行,資料隨時就被lru(淘汰掉最不經常使用的)了,資料格式還無比簡單,沒有事務支援。所以該用mysql還得用mysql啊。那你咋辦?用mq吧,大量的寫請求灌入mq裡,排隊慢慢玩兒,後邊系統消費後慢慢寫,控制在mysql承載範圍之內。所以你得考慮考慮你的專案裡,那些承載複雜寫業務邏輯的場景裡,如何用mq來非同步寫,提公升併發性。mq單機抗幾萬併發也是ok的。

4:分庫分表

可能到了最後資料庫層面還是免不了抗高併發的要求,好吧,那麼就將乙個資料庫拆分為多個庫,多個庫來抗更高的併發;然後將乙個表拆分為多個表,每個表的資料量保持少一點,提高sql跑的效能。

5:讀寫分離

這個就是說大部分時候資料庫可能也是讀多寫少,沒必要所有請求都集中在乙個庫上吧,可以搞個主從架構,主庫寫入,從庫讀取,搞乙個讀寫分離。讀流量太多的時候,還可以加更多的從庫。

6:solrcloud:

solrcloud(solr 雲)是solr提供的分布式搜尋方案,可以解決海量資料的 分布式全文檢索,因為搭建了集群,因此具備高可用的特性,同時對資料進行主從備份,避免了單點故障問題。可以做到資料的快速恢復。並且可以動態的新增新的節點,再對資料進行平衡,可以做到負載均衡:

什麼是高併發?及高併發的處理方法!

一 什麼是高併發 high concurrency 高併發 high concurrency 是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。簡單點就是在同一時刻不同使用者訪問同一資源的問題 二 高併發相關常用的一些指標 響應時間 respon...

高併發處理方法總結

首先要了解高併發的的瓶頸在 根據不同的情況,解決思路也不同。盡量使用快取,包括使用者快取,資訊快取等,多花點記憶體來做快取,可以大量減少與資料庫的互動,提高效能。用jprofiler等工具找出效能瓶頸,減少額外的開銷。優化資料庫查詢語句,減少直接使用hibernate等工具的直接生成語句 僅耗時較長...

高併發的處理

前幾天面試的時候被人問到,關於高併發的處理。無奈自己只知道從sql語句和表分割槽索引,靜態頁,快取等優化。其他的優化方法不了解。今天搜尋了下資料,找到幾種解決方案。1 html靜態化 2 伺服器分離 3 資料庫集群和庫表雜湊 4 快取 5 映象 6 負載均衡 乙個典型的使用負載均衡的策略就是,在軟體...