Java 大型系統高並發大數據的處理方式


頁面靜態化 (頁面層面的緩存)

緩存 (memcached、redis等,數據緩存、避免多次請求)

集群負載均衡(單機處理能力不足)

分庫分表(大量數據的處理、原則分、分、分)

讀寫分離

隊列、MQ、數據庫增加加鎖(防止並發)

存儲(IO最耗性能)

小型機(提交硬件性能,呵呵)

..... 等待再補充


數據庫層面:

當數據增加到100萬以上,那么,MySQL的效能急劇下降  
常用的優化措施是M-S(主-從)方式進行同步復制
M-M-Slaves方式,兩個M可進行切換,Slaves可進行負載均衡
隨着用戶進一步增加,你的用戶表數據超過1千萬,這時那個M變成了SPOF
不能任意擴充Slaves,否則復制同步的開銷將直線上升
方法是表分區,從業務層面上進行分區
最簡單的,以用戶數據為例。根據一定的切分方式,比如id,切分到不同的數據庫集群去

需要注意的是: 
1、禁用全部auto_increment的字段 
2、id需要采用通用的算法集中分配 
3、要具有比較好的方法來監控mysql主機的負載和服務的運行狀態。如果你有30台以上的mysql數據庫在跑就明白我的意思了。 
4、不要使用持久性鏈接(不要用pconnect),相反,使用sqlrelay這種第三方的數據庫鏈接池,或者干脆自己做。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM