更新時間:2022-05-12 11:19:17 來源:動力節(jié)點 瀏覽1354次
Java高并發(fā)要怎么處理?動力節(jié)點小編來告訴大家一些思路。
一種。避免頻繁使用新對象。對于整個應(yīng)用程序只需要一個實例的類,我們可以使用Java單例模式。對于 String 連接操作,使用 StringBuffer 或 StringBuilder,對于實用程序類,可以通過靜態(tài)方法訪問它們。
灣。避免使用錯誤的方法,盡量不要使用instanceof進行條件判斷。在java中使用高效的類,比如ArrayList,比Vector更好。
我們通過鏈接地址訪問。通過這個鏈接地址,服務(wù)器對應(yīng)的模塊處理請求,到對應(yīng)的jsp頁面,最終生成我們想要的數(shù)據(jù)。但是,如果有幾千萬的請求,高并發(fā)請求太多,那么就會增加服務(wù)器的壓力,最壞的情況就是關(guān)閉服務(wù)器。那么如何避免這種情況呢?如果我們將初始請求test.do的結(jié)果保存為html文件,然后用戶每次訪問該html文件,就不需要訪問服務(wù)器了,服務(wù)器的壓力會減輕嗎?
如何自動生成靜態(tài)頁面,當用戶訪問時,會自動生成test.html,然后展示給用戶。
對于web服務(wù)器來說,圖片是最消耗資源的,所以我們需要把圖片和頁面分開,把圖片放在單獨的圖片服務(wù)器上。這樣的架構(gòu)可以減輕提供頁面訪問請求的服務(wù)器系統(tǒng)的壓力,并且可以保證系統(tǒng)不會因為圖像問題而崩潰。在鏡像服務(wù)器上,我們可以優(yōu)化不同的配置。
具體講到的緩存機制就是hibernate的緩存機制。為了避免每次都從數(shù)據(jù)庫中獲取數(shù)據(jù),我們將用戶經(jīng)常訪問的數(shù)據(jù)放到內(nèi)存中,即使緩存非常大,我們也可以將內(nèi)存中的緩存放到硬盤上。還有先進的分布式緩存數(shù)據(jù)庫使用,可以增加系統(tǒng)的抗壓能力。
在做一個項目的時候,一次要傳遞的參數(shù)太多,數(shù)據(jù)庫規(guī)定一次最多傳遞的參數(shù)個數(shù)是30000。當時,有 50,000 條記錄。如何傳遞?最后分批交付。如果一次電梯里人不多,就會報超重bug,分批送人。
還有一次在考試系統(tǒng)中,如果有這么多的考官同時提交給數(shù)據(jù)庫,數(shù)據(jù)庫的壓力就會增加,有時甚至?xí)礄C。當時采用的方法是使用ajax異步傳輸,無需等待考生點擊提交按鈕。,考生的答案自動提交,也避免了考生在突然斷電前做題丟失的現(xiàn)象。
面對復(fù)雜的應(yīng)用,當大量用戶訪問時,一條數(shù)據(jù)很快就無法滿足需求,所以我們需要使用數(shù)據(jù)庫集群或者數(shù)據(jù)庫表哈希。
我們在應(yīng)用程序中安裝業(yè)務(wù)和應(yīng)用程序或功能模塊來分離數(shù)據(jù)。不同的模塊對應(yīng)不同的數(shù)據(jù)庫或表,然后按照一定的策略對一個頁面或函數(shù)進行較小的數(shù)據(jù)庫hash。
在設(shè)計數(shù)據(jù)庫時應(yīng)考慮后期的維護。數(shù)據(jù)庫的三個范式是我們在設(shè)計數(shù)據(jù)庫時必須遵循的原則。
指標建立:指標建立得當。如果一張表經(jīng)常用于查詢,很少用于增刪改查,我們可以為這張表創(chuàng)建一個索引,因為對于增刪改查操作,我們對索引的維護大大超過了索引給我們帶來的效率。
表字段的類型選擇要合適
包括字段的長度和類型,要根據(jù)實際存儲的數(shù)據(jù)來選擇。長度不宜過長,否則會影響效率。
外鍵要謹慎使用,因為主鍵代表這張表,外鍵代表一組表,它們之間是相互關(guān)聯(lián)的,我們在刪除和修改的時候需要關(guān)聯(lián)起來。
在數(shù)據(jù)庫操作中
通過上述介紹,相信大家對Java高并發(fā)處理的思路已經(jīng)有所了解,如果大家對此比較感興趣,想了解更多相關(guān)知識,不妨來關(guān)注一下動力節(jié)點的Java高并發(fā)視頻教程,里面的課程內(nèi)容由淺到深,通俗易懂,適合沒有基礎(chǔ)的小白學(xué)習(xí),希望對大家能夠有所幫助。
相關(guān)閱讀