- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網協(xié)會理事單位
- 安全聯(lián)盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數(shù)碼
一、一般什么情況下網站會產生突發(fā)高并發(fā)情況?
1. 如果是自己官網做活動或者有特別事件,忽然涌入大量真實用戶導致服務器扛不住,那只能怪你沒提前準備好服務器和帶寬,所以加入一個好的CDN,做好網站資源緊張時候的預備措施是十分必要的。
2.如果是未知流量,可能是流量型攻擊。
二、帶來的問題及解決方法:
1.高并發(fā)、服務器壓力大、性能變差。
解決方法:不把mysql部署到服務器里面,先請求服務器,服務器再去請求mysql數(shù)據(jù),可以做多機集群,大致分為三步,主從同步、讀寫分離、主備切換,一兩個數(shù)據(jù)庫肯定支持不了大量的數(shù)據(jù)訪問請求的,所以要集成多個數(shù)據(jù)庫,在多個數(shù)據(jù)庫里確定一個主數(shù)據(jù)庫用于插入數(shù)據(jù),然后查詢通過從數(shù)據(jù)庫查詢出來。
(1)主從同步 就是在主數(shù)據(jù)庫插入數(shù)據(jù)后把數(shù)據(jù)生成一個二進制的文件,并授權一個賬號,然后從數(shù)據(jù)庫利用賬號把二進制文件解析到自己庫里,發(fā)送請求到數(shù)據(jù)庫,它不知道該訪問哪個數(shù)據(jù)庫就要進行讀寫分離了。
(2)讀寫分離這時就要通過一個負載均衡器來分發(fā)請求給主從數(shù)據(jù)庫,負載均衡器管理著主從數(shù)據(jù)庫的ip和端口號,自己也向外暴露一個請求能訪問的ip,負載均衡器的配置文件通過管理主從數(shù)據(jù)庫的ip和端口號來指定數(shù)據(jù)庫是查詢還是添加修改,這就做到了讀寫分離,如果出現(xiàn)單點故障就是負載均衡器掛了。
(3)主備切換最好的解決辦法是使用備用負載均衡器,主的均衡器和副的均衡器通過第三方插件keepalive來建立聯(lián)系,它們之間會一直發(fā)送心跳查詢,如果主的掛了馬上切換到備用負載均衡器。
2.容易產生單點故障。
解決方法:做服務器tomcat集群,使用多個tomcat來解決單點故障問題,服務器集群有兩個特性。(一)可擴展的,因為它能動態(tài)的添加服務器,(二)可用性高,當一個服務器掛掉了,會提供一個正常的其它服務器來繼續(xù)提供服務,集群有兩大作用,一是負載均衡,負載均衡器會根據(jù)每個服務器的性能高低合理分配任務,二是容錯恢復當一個服務器掛掉了,會提供一個正常的其它服務器來繼續(xù)提供服務,我們一般使用Nginx服務器作為分發(fā)任務請求的負載均衡器,然后向外暴露端口號和ip,一旦請求進來,Nginx會根據(jù)tomcat性能情況分發(fā)。Nginx之間也是通過Keepalive來保證狀態(tài)的。
3.所有的靜態(tài)資源(img、html、css、js)都交給了tomcat來處理,導致性能下降。
解決辦法:通過使用Redis集群管理靜態(tài)資源,當需要緩存的靜態(tài)資源越來越多,我們就要集多臺機器做中央緩存,把查詢出來的資源寫入Redis的中央緩存里,然后通過另一個Redis讀取出來,因為Redis是鍵值對的存儲結構,可以通過jsessionId作為key,然后通過這個key去查詢對應的value,key存入cookie里,再去Redis取到Value值,如果訪問后臺先去Redis查找,查找不到再去數(shù)據(jù)庫查詢,然后把查詢結果存入Redis里。Redis做集群需要twmprox代理服務器來管理多個Redis,并且通過備用twmproxy防止單點故障,主備之間也是使用keepalive建立聯(lián)系,上面整個分布式集群可以通過cdn(內容分發(fā)網絡)部署到全國各大地區(qū),以提高訪問速度。
針對以上網站會產生突發(fā)高并發(fā)情況的原因,這邊藍隊云隊長建議大家可以升級服務器的配置以及購買藍隊云CDN加速哦。具體的可以咨詢藍隊云客服:4006-75-4006.
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP