1 order-user系統高併發結構
1.1高併發?
網際網路專案,一般必須支援高併發,我們開發的order-user系統支援多少併發(單位時間併發) 取決於系統執行使用的web容器(tomcat)取決於系統伺服器的硬體。tomcat併發 一秒鐘200-500左右,所以不支援高併發!
所以單機執行order-user系統 不能支援高併發,
1.2高併發結構(集群)
1.3 單機併發200-500 ,可以實現集群搭建,就能線性併發增長。我們可以利用idea多例項執行,讓order-user系統多啟動幾個。多個tomcat容器同時進行執行。
可以通過idea提供的乙個專案多例項的執行 集群:如下配置
選擇templates
全部新增
效果
這樣 埠號 8091 8092 8093 8094 都可以訪問我們建立的**(實際生產中往往通過雲集群實現)。但是實際網路生產過程中,我們訪問乙個** 通常是乙個網域名稱訪問,但是這樣埠號有很多個 ,那麼怎樣實現乙個網域名稱 訪問這多個埠號呢。
2 nginx
2.1 介紹
nginx 是高效能http道理伺服器技術 可以實現http請求處理
2.2作用
負載均衡:就是解決之前提出如何讓使用者通過同乙個網域名稱和埠號訪問到不同的伺服器集群的節點
動靜分離:所有靜態檔案,.html.js.img交給nignx管理,訪問靜態檔案是非常迅速的,動態資源(**功能)交給後端伺服器處理
2.3引入nginx的負載均衡結構
客戶端通過網路,使用網域名稱+80預設埠訪問到nginx的伺服器,通過nginx的計算可以負載均衡的訪問後端伺服器集群
logs: access.log 通過nginx訪問的記錄,error.log執行啟動時的錯誤日誌
easymall:order-user的靜態檔案
test-em:easymall系統靜態檔案
nginx_start.bat: 啟動nginx的bat檔案
nginx_stop.bat: 停止nginx的bat檔案
檢查nginx是否正常執行
預設配置中,nginx需要啟動2個程序,乙個是master管理員,乙個是worker工作程序,可以觀察任務管理器
3 nginx入門案例
需求 :使用nginx訪問www.ou.com 訪問到 1 中我們配置得8091 的埠 http://localhost:8091/index.html
3.1 保證這個網域名稱能訪問到nginx啟動伺服器
需要在window中 host做ip位址對映(實際是去買個網域名稱 目前就先測試)
3.2配置nginx的虛擬伺服器
nginx作為**,可以在核心配置檔案中配置多個虛擬伺服器(http伺服器) 接收到達nginx伺服器的http請求,根據配置邏輯實現監聽判斷,滿足條件的請求將會有這個虛擬伺服器處理—server.
開啟編輯–nginx根目錄–>conf資料夾–>nginx.conf
3.3 location的匹配規則和優先順序
在乙個server的內容 ,可以同時存在多個location,根據請求中攜帶的uri位址結構不同值不同,分到不同location來出不同的請求
最終啟動
成功
Nginx實戰解決高併發(靜態資源快取)
前言 我們知道nginx tomcat可以實現動靜分離,但這並不是最好的解決方案,因為往往頻寬會成為瓶頸。分析 訪問慢的真正原因?很多情況下往往是靜態資源太大,而頻寬不足,導致 載入很慢。解決方案 一 cdn內容分發 解決頻寬不足 使用第三方oos 物件儲存 如七牛雲,阿里雲oos等 二 減少與服務...
高併發解決思路
今日看到一位大佬所寫的文章,感覺思路很清晰,所以記錄下來,以作後看。一 秒殺帶來了什麼?秒殺或搶購活動一般會經過 預約 搶訂單 支付 這3個大環節,而其中 搶訂單 這個環節是最考驗業務提供方的抗壓能力的。搶訂單環節一般會帶來2個問題 2 超賣 任何商品都會有數量上限,如何避免成功下訂單買到商品的人數...
nginx高併發配置
nginx配置及說明 worker processes 8 nginx 程序數,建議按照cpu 數目來指定,一般為它的倍數。worker cpu affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000...