高併發詳解

2022-03-03 06:44:47 字數 1033 閱讀 1624

1.高併發:是一種系統執行過程中遇到的一種「短時間內遇到大量操作請求」的情況,主要發生在web系統集中大量訪問或者socket埠集中性收到大量請求(例如:12306的搶票情況;天貓雙十一活動)。該情況的發生會導致系統在這段時間內執行大量操作,例如對資源的請求,資料庫的操作等。如果高併發處理不好,不僅僅降低了使用者的體驗度(請求響應時間過長),同時可能導致系統宕機,嚴重的甚至導致oom異常,系統停止工作等。如果要想系統能夠適應高併發狀態,則需要從各個方面進行系統優化,包括,硬體、網路、系統架構、開發語言的選取、資料結構的運用、演算法優化、資料庫優化、多執行緒設計……

2.實現高併發需要考慮:

系統的架構設計,如何在架構層面減少不必要的處理(網路請求,資料庫操作等)

網路拓撲優化減少網路請求時間、如何設計拓撲結構,分布式如何實現?

系統**級別的**優化,使用什麼設計模式來進行工作?哪些類需要使用單例,哪些需要儘量減少new操作?

提高**層面的執行效率、如何選取合適的資料結構進行資料訪問?如何設計合適的演算法?

任務執行方式級別的同非同步操作,在**使用同步,**使用非同步?

jvm調優,是以server模式還是以clien模式執行,如何設定heap、stack、eden的大小,如何選擇gc策略,控制full gc的頻率?

資料庫優化減少查詢修改時間。資料庫的選取?資料庫引擎的選取?資料庫表結構的設計?資料庫索引、觸發器等設計?是否使用讀寫分離?還是需要考慮使用資料倉儲?

快取資料庫的使用,如何選擇快取資料庫?是redis還是memcache? 如何設計快取機制?

資料通訊問題,如何選擇通訊方式?是使用tcp還是udp,是使用長連線還是短連線?nio還是bio?netty、mina還是原生socket?

作業系統選取,是使用winserver還是linux?或者unix?

硬體配置?是8g記憶體還是32g,網絡卡10g還是1g?

……以上的這些問題在高併發中都是必須要深入考慮的,就像木桶原理一樣,只要其中的某一方面沒有考慮到,都會造成系統瓶頸,影響整個系統的執行。而高併發問題不僅僅涉及面之廣,同時又要求有足夠的深度!!!

高併發詳解

一 什麼是高併發 高併發 high concurrency 是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。高併發相關常用的一些指標有響應時間 response time 吞吐量 throughput 每秒查詢率qps query per se...

高併發詳解

一 什麼是高併發 高併發 high concurrency 是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。高併發相關常用的一些指標有響應時間 response time 吞吐量 throughput 每秒查詢率qps query per se...

python高併發的詳解

高併發 high concurrency 是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。高併發相關常用的一些指標有響應時間 response time 吞吐量 throughput 每秒查詢率qps query per second 併發使用...