360大牛解讀PHP面試 高併發解決方案類考察點

2021-08-27 16:00:39 字數 1774 閱讀 9707

真題回顧

php如何解決高併發大流量問題?

考點分析

高併發架構的相關概念概念qps達到100:假設關係型資料庫的每次請求在0.01秒內完成,假設單頁面只有乙個sql查詢,那麼100qps意味著1秒鐘完成100次請求,但是此時我們並不能保證資料庫查詢能完成100次,所以達到極限,優化方案:資料庫快取層、資料庫負載均衡。

qps達到800:假設我們使用的百兆頻寬,意味著**出口的實際頻寬是8m左右,假設每個頁面只有10k,這個併發條件下,百兆的頻寬已經吃完。方案:cdn加速、負載均衡。

qps達到1000,假設使用memcache 快取資料庫查詢,每個頁面對memcache的請求遠大於對db的請求,memcahe的悲觀併發數在2w左右,但有可能在這之前內網頻寬已經吃光,表現出不穩定。方案:靜態html快取。

qps達到2000在這個級別下 檔案系統訪問鎖都成為災難。方案:做業務分離,分布式儲存。

優化方案:

一網打盡

什麼是防盜煉:盜鏈就是在自己的伺服器上展示一些不是自己伺服器上的內容

防盜煉工作原理 : 通過refer 或者簽名,**可以檢測到目標網頁訪問的**網頁,如果是資源檔案,則可以跟蹤到顯示他的網頁位址,一旦檢測到**不是本站即進行阻止或者返回指定頁面。通過簽名方式通過計算簽名的方式,計算簽名是否合法,合法則顯示,否則返回錯誤資訊。

實現方法:通過referer方法使用nginx 模組ngx_http_referer_module 用於阻擋**非法的網域名稱請求,nginx指令valid_referers,全域性變數$invalid_referer.問題可以偽裝referer。使用加密簽名,使用第三方模組httpaccessmodule實現反盜鏈,

相關概念

為什麼減少http請求次數:減少http請求的方式:css精靈、合併指令碼和樣式表適

七層負載均衡實現:基於url等應用層資訊的負載均衡;代表 nginx的proxy是他乙個很強大的功能,實現了7層負載均衡。功能強大、效能卓越、執行穩定, 配置靈活簡單、能自動剔除工作不正常的後端伺服器、上傳檔案使用非同步模式、支援多種分配策略。nginx負載均衡策略:內建策略:iphash加權輪詢, 擴充套件策略:fair策略:根據後端伺服器的響應時間判斷負載情況,從中選出負載最輕的機器進行分流。通用hash:通用hash比較簡單,可以以nginx內建變數為key進行hash、一致性hash:採用nginx內建的一致性hash環,支援memcache。

nginx配置

四層負載均衡實現:通過報文中的目標位址和埠,再加上負載均衡裝置設定的伺服器選擇方式,決定最終選擇的內部伺服器。lvs實現伺服器負載均衡有三種方式nat、dr、和tun。

360大牛解讀PHP面試 Linux基礎考察點

請寫出盡可能多的linux命令 linux常用命令 系統定時任務 vi vim 編輯器 shell基礎 系統安全類 sudo su chmod setfacl 程序管理 w top ps kill pkill pstree killall 使用者管理 id usermod useradd group...

php高併發解決方案

最近在做乙個 專案,遇到個問題,就是在搶購 秒殺 等活動時,庫存數量有限,但是同時下單人數超過了庫存數量,就會導致商品超售問題。那麼我們怎麼來解決這個問題呢,我的思路如下 sql1 查詢商品庫存 if 庫存數量 0 當沒有併發時,上面的流程看起來是如此完美,假設同時兩個人下單,而庫存只有1個了,在s...

php 高併發解決方案

最近在做乙個 專案,遇到個問題,就是在搶購 秒殺 等活動時,庫存數量有限,但是同時下單人數超過了庫存數量,就會導致商品超售問題。那麼我們怎麼來解決這個問題呢,我的思路如下 sql1 查詢商品庫存 if 庫存數量 0 當沒有併發時,上面的流程看起來是如此完美,假設同時兩個人下單,而庫存只有1個了,在s...