欧美亚洲精品一区,日韩电影中文字幕一区,欧美日韩国产一二三,美女100%一区

當前位置: 首頁 / 新聞 / 網站知識 / 正文

知識普及:網站搭建來兼容數千并發的詳細步驟!!

來源:qiuzhx時間:2020-04-23



1.實現一個多并發的網站任務,開始做的時候并不知道實際的并發量會有多少,經過討論決定使用如下的流程方式



2.解釋一下,收到客戶端發過來的請求后,通過負載均衡分配到空閑的web服務器進行請求處理,請求期間的操作都是使用redis作為數據讀取和存儲(不要用數據庫,要不然會出現MySQL連接數過大,服務器卡死的情況),然后購票成功后再寫入數據庫中。下面分布解說

3.首先需要用到負載均衡,不要以為很麻煩,現在很方便,阿里云就提供相應的服務,直接購買就好,然后將服務器綁定到負載均衡實例中,域名指向負載均衡實例就好,可以寫兩個靜態頁面分別放到web服務器1和web服務器2中,不停刷新看看是否是請求到不同的服務器了。

4.負載均衡可以跑通知之后將自己的代碼傳到兩臺服務器中,然后測試能否跑起來。

5.在測試過程中發現用戶登錄有問題,因為是購票系統,所以肯定存在用戶模塊,這里用戶登錄使用session存儲的,所以搭建負載均衡還牽扯到一個session共享的問題。不過用到的是laravel框架,框架里面的session默認是使用文件存儲方式,支持redis存儲,而我們兩臺web服務器連接的是同一個redis服務器,所以將存儲方式換成redis存儲后就解決了問題。其他不支持的框架也可以使用memcache,數據庫等解決,方法很多,可以單獨看看這方面的解決方法。

6.代碼傳到服務器也能跑通之后,就需要進行壓力測試了。

7.使用的服務器配置是2臺2核8G內存5M寬帶的web服務器,一臺4核16的數據庫redis服務器。

8.并發測試工具阿里云也有,買了一個便開始測試,但實際測試過程中發現與理想的差距甚大,4百并發便已經有不少失敗請求。

9.優化吧,首先修改了一下nginx和php-fpm之間的通信方式,把原來TCP修改成了UNIX Domain Socket.相比之下減少了很多tcp/ip層,物理層,路由層之間的連接,再跑一邊,效果好了一點點。

10.然后發現再跑壓測的時候,活躍進程數很低,發現PHP里面的配置max_children本來就很小,然后按照網上說的計算方式,把值調整到了400,接著監聽,發現是好很多,但是活躍進程一直到60~80就上不去了,而查看cup,負載等都已經到100%,原來cpu忙不過來了。。。

11.升級cpu,到8核,內存升級到16G,然后max_children調整到了800,哇哦,質的飛躍,還是硬件給力,并發一兩千還是支持的住的。

12.想要支持的并發跟多的話,可以通過增加web服務器來分擔負載,程序優化優化,服務器方面的優化還有待提升,后面慢慢研究吧。

主站蜘蛛池模板: 金昌市| 定兴县| 普兰县| 买车| 伊宁县| 清流县| 昌宁县| 南丰县| 永春县| 广宗县| 广灵县| 安化县| 温泉县| 安福县| 乌鲁木齐县| 邛崃市| 平定县| 车致| 和静县| 普格县| 藁城市| 来安县| 荔波县| 雷波县| 鄢陵县| 开远市| 玉山县| 开鲁县| 宝应县| 西安市| 巴东县| 西和县| 泰宁县| 淅川县| 宁夏| 德格县| 同心县| 依安县| 济宁市| 荥经县| 那曲县|