最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解PHP服務器如何在有限的資源里最大提升并發(fā)能力

 更新時間:2021年05月25日 15:53:41   作者:phpyu  
本文主要介紹了PHP服務器怎樣提升并發(fā)能力,對此感興趣的同學,可以參考下。

概述

假設報考app是用5W rmb 向供應商采購,報名當天涌入海量考生,并發(fā)數(shù)飆升至30W+,導致系統(tǒng)宕機,拒絕服務,致使考生無法報名,那么5W rmb 能否支持30W+并發(fā)呢?

不過對于我們來說,不妨把問題上升一個角度:「如何在有限的資源里最大提升服務器并發(fā)能力」。假設你是一名技術負責人,你在面對一個并發(fā)量較大的項目時會如何設計和架構呢?

首先我們可以針對這個項目捋一下大體的思路,從上述描述中不難看出,該項目的瓶頸在于「并發(fā)寫」而非「讀」,因此從資源分配上我們可以向「寫」傾斜,在此我將數(shù)據(jù)全部寫入在Redis中。除此之外,我們也需要盡量的將MySQL的讀操作遷移到Redis上來,MySQL所做的工作更傾向于一些常規(guī)非并發(fā)的讀寫操作。

服務器

當用戶請求過來,由負載均衡器負載到各個服務器上

這是一張來自symfony的壓測數(shù)據(jù),使用的是1 CPU, 4 GB and PHP 7的配置。

上圖的數(shù)據(jù)來自于swoole官網(wǎng),在加上我們在實際業(yè)務邏輯的執(zhí)行之后,可以發(fā)現(xiàn),當我們在使用常駐內(nèi)存的啟動方式時,3臺更低配服務器就能解決上述需要16臺才能解決的問題。

數(shù)據(jù)庫

其實許多人在接觸后端有一定的階段之后都會了解,現(xiàn)在的許多互聯(lián)網(wǎng)項目的瓶頸更多的集中在數(shù)據(jù)庫I/O這塊,各個語言之間并沒有特別大的差距。包括廣被大家所詬病的PHP-FPM的啟動方式,也可以使用swoole等方式來替代。因此,在這個項目中,會將更多的把精力集中于數(shù)據(jù)庫這一塊,可以嘗試使用Redis來解決,當然,在具體代碼中,也需要提前準備好一定數(shù)量的數(shù)據(jù)連接池。 另外,也考慮MongoDB雖然在同等配置下的寫入速度要比MySQL快得多,但是相比于Redis,還是存在明顯不足。

注冊登錄

注冊和登錄其實應該分成兩塊來講,二者分別對應的是「寫」和「讀」。在高并發(fā)讀寫情況下,直接使用MySQL,如你期待的那樣,會爆。因此,我們在構建整個項目的過程中,可以將用戶數(shù)據(jù)緩存到Redis中。 「寫」的問題:在用戶數(shù)量不明確且并發(fā)量較大的情況下,我更傾向于用戶數(shù)據(jù)不直接入庫。我們可以設計一個開關或閾值,來設置用戶的入庫方式,當并發(fā)大的情況下可以通過MQ來異步讓用戶入庫,而平時則可以正常入庫。

提交表單

因為該項目并非我們所常見的秒殺,且需要即時通知的,因此給我們項目的設計大大減少了難度。在提交表單的功能也跟注冊類似,我們完全可以讓數(shù)據(jù)異步入庫,然后后臺審核。

總結

其他的像CDN、MySQL是否需要主從之類的就不再贅述了,視實際情況而定。從理論上,如果使用PHP-FPM的方式,大概需要19000元/月來解決項目的這個問題,而當使用swoole時,大概需要4500元/月,在這里并沒有鼓吹swoole,想說明的是當我們在面對大并發(fā)項目時,尤其是業(yè)務邏輯相對復雜,我們使用常駐內(nèi)存更能解決問題,而這與語言無關。 最后,需要說明的是,上述僅是理論階段,至于實際數(shù)據(jù)如何都需要進一步檢驗。文章素材來源于網(wǎng)絡,如果有寫的不正確的地方,望指出。

以上就是詳解PHP服務器如何在有限的資源里最大提升并發(fā)能力的詳細內(nèi)容,更多關于PHP服務器如何在有限的資源里最大提升并發(fā)能力的資料請關注腳本之家其它相關文章!

相關文章

  • PHP觀察者模式原理與簡單實現(xiàn)方法示例

    PHP觀察者模式原理與簡單實現(xiàn)方法示例

    這篇文章主要介紹了PHP觀察者模式原理與簡單實現(xiàn)方法,結合實例形式分析了php觀察者模式的概念、原理、實現(xiàn)方法及相關注意事項,需要的朋友可以參考下
    2017-08-08
  • PHP實現(xiàn)的mysql讀寫分離操作示例

    PHP實現(xiàn)的mysql讀寫分離操作示例

    這篇文章主要介紹了PHP實現(xiàn)的mysql讀寫分離操作,簡單講述了mysql讀寫分離的原理,并結合實例形式給出了php針對mysql的讀寫sql語句操作不同數(shù)據(jù)庫的相關實現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • PHP遍歷目錄文件的常用方法小結

    PHP遍歷目錄文件的常用方法小結

    這篇文章主要介紹了PHP遍歷目錄文件的常用方法,結合實例形式總結分析了php針對文件與目錄的常用遍歷技巧與運行效率,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • 11個PHPer必須要了解的編程規(guī)范

    11個PHPer必須要了解的編程規(guī)范

    從設計之初,PHP被廣泛用于開發(fā)基于Web的應用程序。 由于PHP是一種腳本語言,開發(fā)的時候必須遵守一些規(guī)范。
    2014-09-09
  • PHP實現(xiàn)RSA簽名生成訂單功能【支付寶示例】

    PHP實現(xiàn)RSA簽名生成訂單功能【支付寶示例】

    這篇文章主要介紹了PHP實現(xiàn)RSA簽名生成訂單功能,涉及php隨機字符串及編碼相關操作技巧,以及支付寶公鑰文件讀取與使用方法,需要的朋友可以參考下
    2017-06-06
  • 基于python發(fā)送郵件的亂碼問題的解決辦法

    基于python發(fā)送郵件的亂碼問題的解決辦法

    本篇文章小編為大家介紹了,基于python發(fā)送郵件的亂碼問題的解決辦法。需要的朋友參考下
    2013-04-04
  • 用PHP獲取Google AJAX Search API 數(shù)據(jù)的代碼

    用PHP獲取Google AJAX Search API 數(shù)據(jù)的代碼

    用PHP獲取Google AJAX Search API 數(shù)據(jù)的代碼
    2010-03-03
  • php session安全問題分析

    php session安全問題分析

    攻擊者通過投入很大的精力嘗試獲得現(xiàn)有用戶的有效會話ID,有了會話id,他們就有可能能夠在系統(tǒng)中擁有與此用戶相同的能力.
    2011-06-06
  • 詳解PHP中數(shù)組函數(shù)的知識點

    詳解PHP中數(shù)組函數(shù)的知識點

    PHP 的數(shù)組是一種很強大的數(shù)據(jù)類型,與此同時 PHP 內(nèi)置了一系列與數(shù)組相關的函數(shù)可以很輕易的實現(xiàn)日常開發(fā)的功能。所以本文便總結了一些在常見場景中利用 PHP 內(nèi)置函數(shù)的實現(xiàn)方法,希望對你有所幫助
    2022-11-11
  • PHP如何通過date() 函數(shù)格式化顯示時間

    PHP如何通過date() 函數(shù)格式化顯示時間

    這篇文章主要介紹了PHP如何通過date() 函數(shù)格式化顯示時間,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11

最新評論

阿勒泰市| 徐州市| 手机| 新密市| 合作市| 连城县| 漳浦县| 荣成市| 昌江| 青川县| 荣成市| 连南| 赤城县| 芦山县| 金川县| 左权县| 株洲市| 礼泉县| 碌曲县| 琼结县| 札达县| 文安县| 农安县| 凭祥市| 波密县| 噶尔县| 凤凰县| 眉山市| 崇州市| 阳江市| 固始县| 西华县| 闸北区| 宣化县| 肇庆市| 曲阜市| 大连市| 佛教| 灵川县| 哈密市| 泸州市|