『壹』 請問java高手,web的高並發請求如何處理啊
tomcat的性能頂多也就每秒500-600了 對於復雜程度的業務效率更低
所以要切容器,同步變非同步,流式處理,分布式分發響應,負載均衡等
不是一句能講完的
『貳』 javaweb並發的問題,一個電商項目,同一時間很多人一起使用增刪改查等
你好。
涉及到高並發的問題,需要根據實際業務情景來分析。
具體到問題中描述的:一個電商項目,同一時間很多人一起使用增刪改查等功能
應該需要考慮資料庫事務和資料庫的隔離級別了,根據需求保證合適的資料庫隔離級別,多個表操作的業務中使用資料庫事務控制提交和回滾。
有興趣可以深入了解下 「資料庫事務四種隔離級別」
『叄』 web開發怎麼解決高並發的問題
第一,確認伺服器硬體是否足夠支持當前的流量。 普通的P4伺服器一般最多能支持每天10萬獨立IP,如果訪問量比這個還要大,那麼必須首先配置一台更高性能的專用伺服器才能解決問題,否則怎麼優化都不可能徹底解決性能問題。
第二,優化資料庫訪問。 伺服器的負載過大,一個重要的原因是CPU負荷過大,降低伺服器CPU的負荷,才能夠有效打破瓶頸。而使用靜態頁面可以使得CPU的負荷最小化。前台實現完全的靜態化 當然最好,可以完全不用訪問資料庫,不過對於頻繁更新的網站,靜態化往往不能滿足某些功能。 緩存技術 就是另一個解決方案,就是將動態數據存儲到緩存文件中,動態網頁直接調用這些文件,而不必再訪問資料庫,WordPress和Z-Blog都大量使用這種緩存技術 。我自己也寫過一個Z-Blog的計數器插件,也是基於這樣的原理。 如果確實無法避免對資料庫的訪問,那麼可以嘗試優化資料庫的查詢sql.避免使用Select *from這樣的語句,每次查詢只返回自己需要的結果,避免短時間內的大量SQL查詢。
『肆』 C#web開發中出現高並發具體處理方法有哪些
盡量使用緩存,包括用戶緩存,信息緩存等,多花點內存來做緩存,可以大量減少與資料庫的交互,提高性能。
用jprofiler等工具找出性能瓶頸,減少額外的開銷。
優化資料庫查詢語句,減少直接使用hibernate等工具的直接生成語句(僅耗時較長的查詢做優化)。
優化資料庫結構,多做索引,提高查詢效率。
統計的功能盡量做緩存,或按每天一統計或定時統計相關報表,避免需要時進行統計的功能。
能使用靜態頁面的地方盡量使用,減少容器的解析(盡量將動態內容生成靜態html來顯示)。
解決以上問題後,使用伺服器集群來解決單台的瓶頸問題。
基本上以上述問題解決後,達到系統最優。
『伍』 如何解決web大流量,高並發的問題
以下是一些總結的方法: 第一,確認伺服器硬體是否足夠支持當前的流量。 普通的P4伺服器一般最多能支持每天10萬獨立IP,如果訪問量比這個還要大,那麼必須首先配置一台更高性能的專用伺服器才能解決問題,否則怎麼優化都不可能徹底解決性能問題。
第二,優化資料庫訪問。 伺服器的負載過大,一個重要的原因是CPU負荷過大,降低伺服器CPU的負荷,才能夠有效打破瓶頸。而使用靜態頁面可以使得CPU的負荷最小化。前台實現完全的靜態化 當然最好,可以完全不用訪問資料庫,不過對於頻繁更新的網站,靜態化往往不能滿足某些功能。 緩存技術 就是另一個解決方案,就是將動態數據存儲到緩存文件中,動態網頁直接調用這些文件,而不必再訪問資料庫,WordPress和Z-Blog都大量使用這種緩存技術 。我自己也寫過一個Z-Blog的計數器插件,也是基於這樣的原理。 如果確實無法避免對資料庫的訪問,那麼可以嘗試優化資料庫的查詢SQL.避免使用Select *from這樣的語句,每次查詢只返回自己需要的結果,避免短時間內的大量SQL查詢。
第三,禁止外部的盜鏈。 外部網站的圖片或者文件盜鏈往往會帶來大量的負載壓力,因此應該嚴格限制外部對於自身的圖片或者文件盜鏈,好在目前可以簡單地通過refer來控制盜鏈,Apache自己就可以通過配置來禁止盜鏈,IIS也有一些第三方的ISAPI可以實現同樣的功能。當然,偽造refer也可以通過代碼來實現盜 鏈,不過目前蓄意偽造refer盜鏈的還不多,可以先不去考慮,或者使用非技術手段來解決,比如在圖片上增加水印。
第四,控制大文件的下載。 大文件的下載會佔用很大的流量,並且對於非SCSI硬碟來說,大量文件下載會消耗CPU,使得網站響應能力下降。因此,盡量不要提供超過2M的大 文件下載,如果需要提供,建議將大文件放在另外一台伺服器上。目前有不少免費的Web2.0網站提供圖片分享和文件分享功能,因此可以盡量將圖片和文件上 傳到這些分享網站。
第五,使用不同主機分流主要流量 將文件放在不同的主機上,提供不同的鏡像供用戶下載。比如如果覺得RSS文件佔用流量大,那麼使用FeedBurner或者FeedSky等服務將RSS輸出放在其他主機上,這樣別人訪問的流量壓力就大多集中在FeedBurner的主機上,RSS就不佔用太多資源了。
第六,使用流量分析統計軟體。 在網站上安裝一個流量分析統計軟體,可以即時知道哪些地方耗費了大量流量,哪些頁面需要再進行優化,因此,解決流量問題還需要進行精確的統計分析 才可以。我推薦使用的流量分析統計軟體是GoogleAnalytics(Google分析)。我使用過程中感覺其效果非常不錯,稍後我將詳細介紹一下 GoogleAnalytics的一些使用常識和技巧。 1.分表 2.讀寫分離 3.前端優化。Nginx替換Apache(前端做負載均衡) 個人認為主要還是分布式架構是否到位,mysql和緩存的優化都是有限度的優化,而分布式架構做出來了,PV增長後,只需要堆機器就能擴容。
另附一些優化經驗,首先學會用explain語句分析select語句,優化索引、表結構,其次,合理運用memcache等緩存,降低mysql的負載,最後,如果可能的話,盡量用facebook的hiphop-php把PHP編譯了,提高程序效率。
『陸』 java web項目,如何實現負載均衡和多並發
HAProxy是一款反向代理伺服器工具,通過它,可以實現負載均衡。它支持雙機熱備支持虛擬主機,但其配置簡單,擁有非常不錯的伺服器健康檢查功能,當其代理的後端伺服器出現故障, HAProxy會自動將該伺服器摘除,故障恢復後再自動將該伺服器加入。新的1.3引入了frontend,backend,frontend根據任意HTTP請求頭內容做規則匹配,然後把請求定向到相關的backend.
利用HAPorxy實現負載均衡
1. 利用HAProxy實現負載均衡
192.168.169.137 (haproxy)———負載均衡———-(192.168.169.117;192.168.169.118)
安裝配置HAproxy
cd /usr/local/
wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.14.2.tar.gz
tar zxvf haproxy-1.3.14.2.tar.gz
mv haproxy-1.3.14.2 haproxy
cd haproxy
make TARGET=linux26
2. 創建配置文件
# vi haproxy.cfg
global
maxconn 5120
chroot /usr/local/haproxy
uid 99
gid 99
daemon
quiet
nbproc 2 #通過nbproc多設置幾個haproxy並發進程,這樣每個進程的task_queue相對就會短很多,性能自然就能提高不少
#pidfile /var/run/haproxy-private.pid
defaults
log global
mode http
option httplog
option dontlognull
log 127.0.0.1 local3
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webfarm 0.0.0.0:80
mode http
stats uri /haproxy-stats #監控haproxy狀態
stats realm Haproxy\ statistics
stats auth netseek:52netseek #設置狀態監控的用戶名為netseek密碼為52netseek
balance roundrobin #負載均衡演算法
cookie SERVERID insert indirect
option httpclose #
option forwardfor #apache日誌轉發功能
option httpchk HEAD /check.txt HTTP/1.0 #健康檢測
server app_bbs1 192.168.169.117:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server app_bbs2 192.168.169.118:80 cookie app1inst2 check inter 2000 rise 2 fall 5
syslog.conf里加一行
local3.* /var/log/haproxy.log
# touch /var/log/haproxy.log
# chown haproxy:haproxy /var/log/haproxy.log
# chmod u+x /var/log/haproxy.log
# tail –f /var/log/harpoxy.log 監控日誌
# ./haproxy -f haproxy.cfg 啟動服務.
監控狀態圖示http://192.168.169.137/haproxy-stats ,輸入用戶名密碼查看狀態。
後端apache日誌處理
配置httpd.conf
LogFormat 「%{X-Forwarded-For}i %l %u %t \」%r\」 %>s %b 」 combined
CustomLog /var/log/httpd/access_log combined
虛擬主機不記錄檢測日誌:
SetEnvIf Request_URI 「^/check\.txt$」 dontlog
LogLevel warn
ErrorLog /var/log/httpd/vhost_error.log
CustomLog /var/log/httpd/vhost_access.log combined env=!dontlog
相關介紹
#./haproxy –help //haproxy相關命令參數介紹.
haproxy -f <配置文件> [-n 最大並發連接總數] [-N 每個偵聽的最大並發數] [-d] [-D] [-q] [-V] [-c] [-p <pid文件>] [-s] [-l] [-dk]
[-ds] [-de] [-dp] [-db] [-m <內存限制M>] [{-sf|-st} pidlist...]
-d 前台,debug模式
-D daemon模式啟動
-q 安靜模式,不輸出信息
-V 詳細模式
-c 對配置文件進行語法檢查
-s 顯示統計數據
-l 顯示詳細統計數據
-dk 不使用kqueue
-ds 不使用speculative epoll
-de 不使用epoll
-dp 不使用poll
-db 禁用後台模式,程序跑在前台
-sf <pidlist>
程序啟動後向pidlist里的進程發送FINISH信號,這個參數放在命令行的最後
-st <pidlist>
程序啟動後向pidlist里的進程發送TERMINATE信號,這個參數放在命令行的最後
『柒』 java web如何解決瞬間高並發
1、任何的高並發,請求總是會有一個順序的
2、java的隊列的數據結構是先進先出的取值順序
3、BlockingQueue類(線程安全)
一般使用LinkedBlockingQueue
利用以上幾點,我們可以把高並發時候的請求放入一個隊列,隊列的大小可以自己定義,比如隊列容量為1000個數據,那麼可以利用過濾器或者攔截器把當前的請求放入隊列,如果隊列的容量滿了,其餘的請求可以丟掉或者作出相應回復
『捌』 1 java web項目你是如何處理高並發的2 在高訪問期間項目出現了一個bug要如何解決
1、提高並發量這個東西是在系統架構層面上的,不是一個業務所能處理的,在提高並發量這放方面,啟用通常會採用資料庫集群,應用集群,負載均衡的方式進行提高。
2、在高訪問期間 如果出現了bug,說明你的程序正在被大量用戶使用,這時候要看你出現的是什麼bug,如果是很嚴重的bug,例如銀行轉賬的時候會多轉給別人錢,這時候當然要把服務給終止掉 ,或者是把此功能禁用,防止引發更多的用戶問題。如果是普通的bug,可以事後再進行處理,或者是當即處理,採用熱升級的方式部署到生產上
『玖』 web應用中如何處理投票的並發問題
利用文件鎖可以實現並發過程的控制
避免超。 請求進來,給文件加鎖
成功則讀取計數內容並判斷是否超出,若超則失敗,否則加1成功,
『拾』 webservice大並發數量 應該怎麼處理
先學測試吧。不是那種業務功能的測試,是系統的測試。因為要解決大數據量、高並發的問題,我個人的知識與經驗是:1、先用單機測試。用工具產生大並發量去轟擊伺服器,直至伺服器緩慢,甚至接近崩潰;3、找到系統瓶頸後,優化,解決這個瓶頸,然後再循環測試。這時你又會發現新的瓶頸,再解決。循環1 - 3步,直到各方面基本平衡為止。4、當單機無法解決問題的時候,接著開始考慮負載均衡,考慮分布式方案,然後再用 1 - 3 的步驟分析與測試。